Java选择结构--if和switch以及嵌套选择结构

顺序结构

  • Java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行​
  • 顺序结构是最简单的算法结构
  • 语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的
  • 它是任何一个算法都离不开的基本算法结构

逻辑运算符

&& 与、并且 两个条件必须同时成立 如:条件1 && 条件2
|| 或、或者 两个条件成立一个即可 如:条件1 ||条件2
! 非(取反) 条件真,结果假;条件假,结果真

示例

	if(a>b && a >c){
    
    	//两个条件都得成立才会执行代码块
		//代码块
	}	
	
	if(a>b || a >c){
    
    	//两个条件成立一个才就会执行代码块
		//代码块
	}	
	
	if(!a>b){
    
    	//条件原本为true,前面加上!结果为false
        //代码
	}

if选择结构

  • if结构是根据条件判断之后再做处理。
  • 条件值为boolean类型 条件成立执行代码

基本if选择结构

语法

	if(条件){
    
    
		//代码块
	}

示例

	if(a>b){
    
    	//如果a>b成立,输出我是傻*,否则不执		
    
		System.out.print("我是傻*");
		
	}

在这里插入图片描述
在这里插入图片描述


if-else选择结构

  • 条件成立执行代码块1 否则执行代码块2

语法

if(布尔表达式){
    
    
	//如果布尔表达的值为true
}else{
    
    
	//如果布尔表达式的值为false
}

示例

	String a = "abc";
	String b = "abc";
	
	if(a.equals(b)){
    
    	//.equals比较字符串
		//如果a>b成立,输出我是傻*
    	System.out.print("我是傻*");
		
	}else{
    
    	//否则输出我是大傻*
	
        System.out.print("我是大傻*");
        
	}

产生随机数(0-9中任意整数)的方法:

int random = (int)(Math.random()*10)

多重if选择结构

语法

if(条件1){
    
     
	代码块1   
}else if(条件2){
    
       
	代码块2
}else{
    
    
	代码块3
}

示例

		Scanner scanner = new Scanner(System.in);

        System.out.println("请输入成绩:");
        int score = scanner.nextInt();
		
		//一个满足条件整个语句就会结束(只走一块代码)
        if (score == 100){
    
    
            System.out.println("恭喜满分");
        }else if (score < 100 && score >= 90){
    
    
            System.out.println("A级");
        }else if (score < 90 && score >= 80){
    
    
            System.out.println("B级");
        }else if (score < 80 && score >= 70){
    
    
            System.out.println("C级");
        }else if (score < 70 && score >= 60){
    
    
            System.out.println("D级");
        }else if (score < 60 && score >= 0){
    
    
            System.out.println("成绩不及格");
        }else{
    
    
            System.out.println("成绩不合法");
        }
        scanner.close();

【注意】else块最多有一个或没有, else块必须放在else if块后面


嵌套if选择结构

  • if结构中嵌套另一个if结构

语法

if(条件1){
    
       //外层

	if(条件2){
    
       //内层
		//代码块1   
	}else{
    
       
		//代码块2 
	} 
	
}else{
    
       
	//代码块3 
}

示例

	int a = 5;
	int b = 7;
	int c = 3;
	
	if(a > b){
    
       //成立的话进入下一层if,显然不成立

		 if(a > c){
    
       
 			System.out.println("1");
			
		 }else{
    
       
			System.out.println("2");
		 }   

	 }else{
    
      //执行这个
		System.out.println("3");
	 }  

Switch选择结构

  • switch:表示“开关”,这个开关就是switch关键字后面小括号里的表达式的值
  • case:通常是一个固定的值。case块可以有多个,顺序可以改变,每个case常量的值必须各不相同。
  • default:其他情况都不满足,表示“默认”。通常,default放在末尾,先后顺序可以变动,也可以省略。
  • break:表示“停止”,即跳出当前结构。

语法

switch(表达式){
    
    
	case 常量1;
		代码块1;
		break;
	case 常量2;
		代码块2;
		break;
	default:
		代码块n;
		break;
}

switch中的变量类型可以是int、short、byte、char、枚举、String类型

示例

char grade = 'C';
switch (grade){
    
    
    case 'A':
        System.out.println("优秀");
    break;
    case 'B':
        System.out.println("良好");
        break;
    case 'C':
        System.out.println("及格");
        break;	//case穿透:如果不写break,switch结构会继续往下执行,break就相当于把switch结束掉
    case 'D':
        System.out.println("再接再厉");
        break;
    case 'E':
        System.out.println("挂科");
        break;
    default:    //默认选择,如果所有选项都不满足条件,那么就会选择这个
        System.out.println("未知等级");
}

多重if和switch的区别

相同点

  • 都是用来处理多分支条件的结构

不同点

  • switch选择结构:只能处理等值条件判断的情况
  • 多重if选择结构:没有switch选择结构的限制,特别适合某个变量处于某个连续的区间时的情况。

猜你喜欢

转载自blog.csdn.net/weixin_45277249/article/details/111188338