七、控制语句----选择语句

1、什么是选择语句?

选择语句又称为分支语句,通过对给定条件进行判定,从而决定执行两个或多个分支的哪一个。在java中选择语句有if语句和switch语句。

2、if语句

1)if语句的语法格式:

  • 第一种写法:

    if(布尔表达式){
    	java语句;
    	java语句;
    
    }
    

    执行方式:

    如果布尔表达式的结果为true,则执行大括号里的程序,如果结果为false,大括号中的代码不执行。

  • 第二种写法:

    if(布尔表达式){	 //分支1
    
    	java语句;
    
    }else{           //分支2
    
    	java语句;
    
    }
    

    执行方式:

    先对布尔表达式进行判定,如果结果为true,则执行分支1,分支2不执行,如果结果为false,分支1不执行,执行分支2。

  • 第三种写法:

    if(布尔表达式1){		//分支1
    
    	java语句;
    
    }else if(布尔表达式2){		//分支2
    
    	java语句;
    
    }else if(布尔表达式3){
    
    	java语句;
    
    }else if(布尔表达式4){
    
    	java语句;
    
    }......
    

    执行方式:

    先判断“布尔表达式1”,如果“布尔表达式1”的结果为true,则执行分支1,然后if语句就结束了。

    当”布尔表达式1“的结果是false,那么会继续判断布尔表达式2的结果,如果布尔表达式2的结果是true,则执行分支2,然后整个if就结束了。

    从上往下依次判断,主要看第一个true发生在那个分支上,第一个true对应的分支执行。只要一个分支执行,整个if结束。

  • 第四种写法:

    if(布尔表达式1){ 		// 分支1
    		java语句;
    }else if(布尔表达式2){ 		// 分支2
    
    		java语句;
    }else if(布尔表达式3){
        
    		java语句;
    }else if(布尔表达式4){
        
    		java语句;
    }else{
    		java语句; // 以上条件没有一个成立的。这个else就执行了。
    }
    

2)需要注意的地方

  • 对于if语句来说,在任何情况下只能由一个人分支执行,不可能存在两个或更多分支的执行。if语句中只要有一个分支执行了,整个if语句就结束了。

  • 以上4种语法机制中,凡是带有else分支的,一定可以保证会有一个分支执行。以上4种当中,第一种和第三种没有else分支,这样的语句可能会导致最后一个分支都不执行。第二种和第四种肯定会有1个分支执行

  • 当分支中的java语句语句只有一条时,大括号可以省略。

    例如:

    ​ if(i==10)

    ​ System.out.println(“i=”+i);

  • if后的括号里只能是true或者false,不能是其他。

3)代码示例

public class Test{
	public static void main(String[] args){
        //判断数字区间
        int i=25;
        if(i<0)
            System.out.println("是一个负数");
        else if(i<50)
            System.out.println("该数是一个小于50的正数");
        else{
        	System.out.println("这是一个大于100的数");
            System.out.println(".....");
        }
            
    }
}

输出结果:“该数是一个小于50的正数”

3、switch语句

1)语法格式

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

2)switch case语句规则

  • switch 语句中的变量类型可以是:int或者String。switch语句本质上是只支持int和String,但是byte,short,char也可以使用在switch语句当中,因为byte short char可以进行自动类型转换。从 Java SE 7 开始,switch 支持字符串 String 类型了,同时 case 标签必须为字符串常量或字面量。
  • switch 语句可以拥有多个 case 语句。每个 case 后面跟一个要比较的值和冒号。
  • case 语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。
  • 当变量的值与 case 语句的值相等时,那么 case 语句之后的语句开始执行,直到 break 语句出现才会跳出 switch 语句。
  • 当遇到 break 语句时,switch 语句终止。程序跳转到 switch 语句后面的语句执行。case 语句不必须要包含 break 语句。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句。
  • switch 语句可以包含一个 default 分支,该分支一般是 switch 语句的最后一个分支(可以在任何位置,但建议在最后一个)。default 在没有 case 语句的值和变量值相等的时候执行。default 分支不需要 break 语句。

3)代码示例

示例一:

public class Test{
	public static void main(String[] args){
        char grade='c';
        switch(grade){
            case 'a':
                System.out.println("优秀");
                break;
            case 'b':
                System.out.println("良好");
                break;
            case 'c':
                System.out.println("及格");
                break;
            case 'd':
                System.out.println("不及格");
            default:
                System.out.println("无法识别的等级");
        }
    }
}

输出结果:“及格”

示例二:

public class Test{
	public static void main(String[] args){
        char grade='c';
        switch(grade){
            case 'a':
                System.out.println("优秀");
            case 'b':
                System.out.println("良好");
            case 'c':
                System.out.println("及格");
            case 'd':
                System.out.println("不及格");
            default:
                System.out.println("无法识别的等级");
        }
        //switch case语句遇到break才会停止,否则从匹配的case语句开始,会一直往下执行
        //这种现象称为“穿透现象”
    }
}

输出结果:

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值