if单选,双选,多选及switch多选择结构

顺序结构

  • Java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行。

选择结构 (重点)

  • if单选择结构

    语法if(布尔表达式){
      //如果布尔表达式为true将执行的语句
    }
    

    如下图

在这里插入图片描述

如果他等于true,那么他将会执行语句,如果等于false,那么他将跳过这段语句

if()里面默认为==true

equals 判断字符串是否相等

equals和==是有区别的

package struct;

import java.util.Scanner;

public class ifDay01 {
   
     public static void main(String[] args) {
    	Scanner scanner = new Scanner (System.in); 
    	 
    	 System.out.println("请输入一个内容:");
    	 String s = scanner.nextLine();
 	 
    	 //equals:判断字符串是否相等
    	 if (s.equals("Hello")) {
    		 System.out.println(s);
    	 }
    	System.out.println("End");
    	 scanner.close();
     }
}

以上代码,只要输入的一个内容为Hello则会再执行一遍hello,再执行end

我们可以先随便输入一个内容 如 A

在这里插入图片描述

就发现,代码运行的时候跳过了语句,直接执行下一个语句

我们在重新输入一个Hello

在这里插入图片描述

代码按照顺序执行了下来

if双选择结构

在这里插入图片描述

  • 语法

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

    示例

    package struct;
    
    import java.util.Scanner;
    
    public class ifDay02 {
    	
    	public static void main(String[] args) {
    		
    		//考试分数大于60分及格,小于60分不及格.
    		Scanner scanner = new Scanner(System.in);
    		
    		System.out.println("请输入成绩:");
    		int score = scanner.nextInt();
    		//nextInt  最小的值是整数不然可能会报错
    		//score  成绩
    		if (score>=60) {
    			System.out.println("及格");
    		}
    		else {
    			System.out.println("不及格");
    		}
    		scanner.close();
    	}
    }
    

if多选择结构

在这里插入图片描述

  • 语法

  • if(布尔表达式1){
        //如果布尔表达式 1的值为true执行代码
    }else if(布尔表达式2){
        //如果布尔表达式 2的值为true执行代码
    }else if(布尔表达式3){
        //如果布尔表达式 3的值为true执行代码
    }else {
        //如果以上布尔表达式都不是true执行代码
    }
    
  • 示列

  • package struct;
    
    import java.util.Scanner;
    
    public class ifDay03 {
    
    	public static void main(String[] args) {
    		
    	Scanner scanner = new Scanner(System.in);
    		 
            
            
            /*
    		 * if语句至多有1个else 语句,else语句在所有的else if语句之后
    		 * if语句可以有若干个else if语句,它们必须在else语句之前、
    		 * 一旦其中一个else  if语句检测为true,其他的else if 以及 else 语句都将跳过执行
    		 * 
    		 * */
    		System.out.println("请输入成绩");
    		float score = scanner.nextFloat();
    		
    		
    		if (score==100) {
    			System.out.println("恭喜满分");
    			
    		}else if (score<100 && score>=90) {
    			System.out.println("A");
    		}else if (score<900 && 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("成绩不合法");
    		}
    
  • 我这个代码是flaot类型,改成int类型就是只能算整数了,这个可以算小数

    if多选择结构注意点

    1. if语句至多有1个else 语句,else语句在所有的else if语句之后**
    2. if语句可以有若干个else if语句,它们必须在else语句之前、

    1. 一旦其中一个else if语句检测为true,其他的else if 以及 else 语句都将跳过执行**

嵌套的if结构

语法:

if(布尔值表达式 1 ){
    //如果布尔表达式 1的值为true执行代码
    if(布尔表达式 2){
        //如果布尔表达式 2的值为true执行代码
    }  
}

switch多选择结构

语法

switch(expression){
    case value :
        //语句
        break;//可选
    case value :
        //语句
        break;//可选
        //你可以有任意数量的case语句
        default// 可选
              //语句       
}

switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。

  • switch 语句中的变量类型可以是:
  • byte、short、int或者char。
  • 从Java SE 7 开始
  • switch 支持字符串String 类型了
  • 同时case标签必须为字符串常量或字面量

示列

package struct;

public class SwitchDay01 {
    public static void main(String[] args) {
    	//
    	char grade = 'C';
    	switch (grade) {
    	//switch()括号里面的表达式可以是一个字符
    	case  'A'://通过case来判断
    		System.out.println("优秀");
    		break;//可选
    	case 'B':
    		System.out.println("良好");
    	case 'C':
    		System.out.println("及格");
    	case 'D':
    		System.out.println("再接再厉");
    	case 'E':
    		System.out.println("挂科");
    	    	
    	}
    	   	
    }
	
}

我们运行一下就会发现,跑出了及格 再接再厉和挂科

在这里插入图片描述

为什么呢?因为break是结束句

如果没有加的话,代码是一直运行下去,

//case的穿透 而switch 就是匹配一个值

如果不加的break(结束句),代码会继续执行下去,直到default才结束

正确代码

package struct;

public class SwitchDay01 {
    public static void main(String[] args) {
    	//case 穿透  switch 匹配一个值   break 结束句
    	char grade = 'B';
    	switch (grade) {
    	//switch()括号里面的表达式可以是一个字符
    	case  'A'://通过case来判断
    		System.out.println("优秀");
    		break;//可选  
    	case 'B':
    		System.out.println("良好");
    		break;
    	case 'C':
    		System.out.println("及格");
    		break;
    	case 'D':
    		System.out.println("再接再厉");
    		break;
    	case 'E':
    		System.out.println("挂科");
    		break;
    	  default:
    		  System.out.println("未知等级");
    	}    	   	
    }	
}

switch注意事项

每次写完case之后,在结束出一定要写上break

switch()括号里面的表达式可以是一个字符

从Java SE 7 开始switch 支持字符串String 类型了

package struct;

public class SwitchDay02 {
	public static void main(String[] args) {
		String name = "我";
		//JDK7的新特性,表达式结果可以是字符
		//字符的本质还是数字
		//反编译  java---class (字节码文件)----反编译(IDEA)
   
		switch (name) {
		case "吕鸿":
		 System.out.println("吕鸿");
		 break;
		case "最右":
			 System.out.println("最右");
			 break;
		case "最左":
			 System.out.println("最左");
			 break;
		case "最上":
			 System.out.println("最上");
			 break;
		
		default:
			System.out.println("回答错误");
		}		
	}
}

跟上面一样,只不过字母换成汉字了

这是JDK7的新特性,不过汉字的本质还是数字

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值