Java基础之分支语句(if,switch)

代码语句可以分为:顺序语句,分支语句和循环语句
顺序语句,顾名思义就是自上向下依次执行。
今天我们主要讲讲分支语句,分支语句有if结构和switch结构

1.if结构语句

if结构语句有三种表达形式,我们一个一个来看
1.只有if的结构。

if(表达式){
		当表达式为真时,执行此处代码;
}

2.if-else结构

if(表达式){
		当表达式为真时,执行此处代码;
}else{
		当表达式为假时,执行此处代码;
}

3.if-else if-else结构

if(表达式1{
		当表达式1为真时,执行此处代码;
}else if(表达式2{
		当表达式2为真时,执行此处代码;
}else if(表达式3{
		当表达式3为真时,执行此处代码;
}
......
else{
		以上条件都不满足时,执行此处代码;
}

注意:如果if后面只有一条语句,那么大括号可以省略,所以在网上看到没有大括号的if语句不要惊讶,这个是正常操作,但是不建议这么写,影响代码整体的可阅读性。
以上就是if结构的一些基本的写法,掌握好了这些以后,我们就可以进行深一点层次的使用,比如说嵌套,在if语句里面,嵌套if语句。举个例子:

/**
*		运用if结构简单的模拟一下登录操作
*		1.欢迎用户
*		2.提示用户输入账号
*		3.判断账号是否为空
*		4.提示用户输入密码
*		5.判断密码是否为空
*		6.判断账号密码是否正确
*		7.登陆成功
*/
import java.util.Scanner;
public class IfDemo{
	public static void main(String[] args){
		System.out.println("欢迎您!");
		System.out.print("请输入您的账号:");
		Scanner sca = new Scanner(System.in);
		//用户键盘输入账号
		String userName = sca.next();
		//进行判断userName是否为空
		if(userName.equals("")){
			System.out.println("账号不能为空");
		}else{
			System.out.print("请输入您的密码:");
			//用户键盘输入密码
			String password = sca.next();
			//进行判断password是否为空
			if(password.equals("")){
				System.out.println("密码不能为空");
			}else{
			//因为没有数据库存储,姑且先把账号,密码的值给定义死了
			//进行判断userName是否为”admin“,且密码是否为”123“
				if(userName.equals("admin") && password.equals("123")){
					System.out.println("登陆成功!");
				}
				else{
					System.out.println("您的账号密码不匹配");
				}
			}
		}
	}
}

这里大家可能有一个问题,判断userName的值的时候,为什么不用“= =”,这就涉及到一个小知识点了,如果是基本数据类型的话,通常可以使用“= =”来进行判断,“= =”判断的两边的存储地址,而上述代码userName是String类型,所以我们要用”equals“来进行判断,“equals”进行判断是两边的字符是否一致。

2.switch结构语句

switch(变量){
	case 常量1 :
		当变量与常量1相同时,执行此处代码;
	break;
	case 常量2 :
		当变量与常量2相同时,执行此处代码;
	break;
	case 常量3 :
		当变量与常量3相同时,执行此处代码;
	break;
	......
	default :
		当变量与以上常量都不相同时,执行此处代码;
	break;
}

注意:1.常量值不能相同 ;2.break的含义为:跳出当前代码块,如果不添加break,那么代码会顺序执行,直到最后的default。3.case后面的语句部分可以有一条或多条语句(也可以没有,没有的话,顺序往下执行);
例如:

/**
*		使用switch模拟输入月份,返回是什么季节
*		1.欢迎用户
*		2.提示输入月份
*		3.根据输入的月份判断是什么季节
*		4.返回是什么季节
*		5.over
*/
import java.util.Scanner;
public class SwitchDemo{
	public static void main(String [] args){
		System.out.println("欢迎光临");
		System.out.print("请输入月份:");
		Scanner sca = new Scanner(System.in);
		String month = sca.next();
		switch(month){
			case "1": System.out.println(month+"月是春季");
			break;
			case "2": System.out.println(month+"月是春季");
			break;
			case "3": System.out.println(month+"月是春季");
			break;
			case "4": System.out.println(month+"月是夏季");
			break;
			case "5": System.out.println(month+"月是夏季");
			break;
			case "6": System.out.println(month+"月是夏季");
			break;
			case "7": System.out.println(month+"月是秋季");
			break;
			case "8": System.out.println(month+"月是秋季");
			break;
			case "9": System.out.println(month+"月是秋季");
			break;
			case "10": System.out.println(month+"月是冬季");
			break;
			case "11": System.out.println(month+"月是冬季");
			break;
			case "12": System.out.println(month+"月是冬季");
			break;
			default: System.out.println("查地球没有此月");
		}
		System.out.println("over");
	}
}

注:switch不能判断区间,只能判断值是否相同
还有一个小知识点:java1.7以下版本不支持判断字符串,只能对基本数据类型进行判断
java1.7及以上版本支持字符串

感谢大家观看!

猜你喜欢

转载自blog.csdn.net/qq_43336579/article/details/107693831