选择结构分为四种:if单选择结构、if-else双选择结构、if-else if-else多选择结构、switch结构

1、if单选择结构

格式:

if(【布尔表达式】或者【true/false】){

【语句块】

}

表示的意思是:

如果布尔表达式结果是true或者直接就是true,则执行大括号内语句块,再执行大括号后面的语句

如果布尔表达式结果是false或者直接就是false,直接跳过大括号内语句块,此if单选结构失效,执行大括号后面语句

例:

if(3<2){
			System.out.println("3<2真的");//不输出
		}
		System.out.println("3<2假的");//输出

if后的大括号可以不写,如果不写只作用于第一个语句,分号结束。但是无论如何都必须写,加强阅读性。

2、if-else双选择结构

格式:

if(【布尔表达式】或者【true/false】){
【语句块1】
}else{
【语句块2】
}

表示的意思是:

如果布尔表达式结果是true或者直接就是true,则执行语句块1,并且语句块2不执行,直接跳过语句块2,执行程序后面其他语句块

如果布尔表达式结果是false或者直接就是false,直接跳语句块1,执行语句块2,再执行程序后面其他语句块

例:

int score=80;
		if(score>60){
			System.out.println("及格");//输出
		}else{
			System.out.println("不及格");//不输出
		}

3、if-else if-else多选择结构

格式:

if(【布尔表达式1】或者【true/false】){
【语句块1】
}else  if(【布尔表达式2】或者【true/false】){
【语句块2】
}.......
else if(【布尔表达式n】或者【true/false】){
【语句块n】
}else{
【语句块n+1】
}

当布尔表达式1为真,则执行语句块1并跳过剩下所有多选择结构语句,否则判断布尔表达式2,

当布尔表达式2真时,则执行语句块2并跳过剩下所有多选择结构语句,以此类推。

如果布尔表达式1-n都为假,则执行语句块n+1,也就是else下的语句块。

例:

int a=10;
		if(a<1){
			System.out.println("是个小数");
		}else if((a<10)&&(a>1)){
			System.out.println("是个个位数数");
		}else if((a<100)&&(a>9)){
			System.out.println("是个两位数");//执行并输出
		}else if((a<1000)&&(a>99)){
			System.out.println("是个三位数");
		}else{
			System.out.println("是个很大的数");
		}

4、switch结构

格式:

switch(【原始表达式】){
case 【值1】:【语句表达式1】;
case 【值2】:【语句表达式2】;
。。。
case 【值y】:【语句表达式y】;
。。。
case 【值n】:【语句表达式n】;
default:【默认表达式】;(deafult及其默认表达可以不写)
}

用法:先算【原始表达式】的值,如果【原始表达式】的值与【值1】~【值n】中某一个【值y】相同,那么从【语句表达式y】开始执行

再执行【语句表达式y+1】,直到【语句表达式n】,最后执行【默认表达式】;

如果再switch语句中看到了break;那么此流程控制语句被打断,直接跳过流程控制语句。

int a=1;
		switch(a){
		case 0:
			a++;//不执行
		case 1:
			a--;//a变成0
		case 2:
			++a;//a变成1
		case 3:
			--a;//a变成0
		default:
			System.out.println(a);//输出0
		}

注意:switch用于等值的判断。case后面必须是个值,不可以是区间

当布尔表达式是等值判断时,既可以多选择结构,也可以用switch结构

当布尔表达式是区间判断时,只能用多选择结构。

任何switch结构都可以用多选择结构替代

但遇到多值判断时,用switch结构,可阅读性更强