浅析java — 选择结构(if、switch)

if语句

if …

格式:
if (关系表达式) {
         ~~~~~~~~ 语句体;
}
若关系表达式成立,则执行语句体;若不成立,则跳过该语句体

//代码演示
public class IfDemo1{
	public static void main(String[] args){
		int a = 10;
		int b = 10;
		if(a==b){
			System.out.println("a与b值相同");
		}
		if(a+1<b){
			System.out.println("a与b值不同");
		}
		//最终结果:a与b值相同
	}
}
  • 注意:当if后只有一条语句时,大括号可以省略(若没有大括号,if默认的作用域只到其后的第一个封号前)
  • 在使用选择结构或循环结构时,尽量不要省略大括号

if … else …

格式:
if (关系表达式) {
         ~~~~~~~~ 语句体1;
}else{
         ~~~~~~~~ 语句体2;
}
若关系表达式成立,则执行语句体1,若关系表达式不成立,则执行语句体2

//代码演示
public class IfDemo2{
	public static void main(String[] args){
		int a = 10;
		int b = 20;
		if(a==b){
			System.out.println("两数相等");
		}else{
			System.out.println("两数不等");
		}
		//所得结果:两数不等
	}
}

if … elseif … elseif … else …

格式:
if (关系表达式1) {
         ~~~~~~~~ 语句体1;
}else if (关系表达式2){
         ~~~~~~~~ 语句体2;
}

}else if (关系表达式n){
         ~~~~~~~~ 语句体n;
}else{
         ~~~~~~~~ 语句体n+1;
}
若关系表达式1成立,则执行语句体1,若关系表达式1不成立,则向下判断,若关系表达式2成立,则执行语句体2,同理,若关系表达式2不成立,就依次向下判断,直到某个关系表达式成立,执行对应语句体,若关系表达式全都不成立,就执行else中的语句体n+1

//代码演示
public class IfDemo3{
	public static void main(String[] args){
		int a = 10;
		int b = 10;
		if(a>b){
			System.out.println("a>b");
		}else if(a<b){
			System.out.println("a<b");
		}else if(a+1<b){
			System.out.println("a+1<b");
		}else{
			System.out.println("a=b");
		}
		//输出结果: a=b
	}
}
  • 注意:只要有一个关系表达式成立,执行完对应位置的语句体后,剩余的全部语句都不再执行,表明此 if 选择结构到此结束

switch语句

格式:
switch (key){
case value1:
        ~~~~~~~ 语句体1;
        ~~~~~~~ break;
case value2:
        ~~~~~~~ 语句体2;
        ~~~~~~~ break;

default:
        ~~~~~~~ 语句体n;
        ~~~~~~~ break;
}

//代码演示
public class SwitchDemo1{
	public static void main(String[] args){
		//输入A,B,C
		String s = "B";
		switch (s){
		case "A":
			System.out.println("等级为A");
			break;
		case "B":
 			System.out.println("等级为B");
   			break;
   		case "C":
    			System.out.println("等级为C");
      			break;
      		default:
      			System.out.println("输入错误");
      			break;
      		}
      		//输出结果: 等级为B
	}
}
  • 注意:
  1. default是可以放在 switch 中的任意位置的,最上面、中间、最下面都可以
  2. default可以省略不写,此时,若 value 的值全都不匹配,就什么都不执行,并且switch执行完成
  3. switch的穿透效果:当去掉某一语句体中的break之后,若 key 与 该 value 匹配成功,则在执行此语句体的同时,对下一个 value 也不再进行匹配判断,将直接执行下一语句体,直到遇到下一个 break 后停止,若一直没有 break ,则将执行到 switch 末尾结束
  4. switch中 case 可以有无限多个,但每个 case 中的 value 必须唯一
  5. case后面只能跟常量,不能跟变量
  6. key的值只能是byte,short,int,char,枚举(enum),String
//switch穿透案例
public class SwitchDemo2{
	public static void main(String[] args){
		//输入月份,判断季节
		int month = 3;
		switch (month){
		case 12:
		case 1:
		case 2:
			System.out.println("冬季");
			break;
		case 3:
  		case 4:
 		case 5:
  			System.out.println("春季");
  			break;
  		case 6:
  		case 7:
  		case 8:
   			System.out.println("夏季");
   			break;
  		case 9:
  		case 10:
  		case 11:
   			System.out.println("秋季");
   			break;
   		default:
   			System.out.println("月份输入有误");
   			break;
  		}
  		//输出结果: 春季
	}
}

猜你喜欢

转载自blog.csdn.net/weixin_42419342/article/details/106943746