java if语句 switch语句

if语句

  • lf语句的第一种格式

  • 执行流程:

  • I.首先计算关系表达式的值

  • II. 如果关系表达式的值为true就执行语句体

  • III. 如果关系表达式的值为false就不执行语句体

  • IV.继续执行后面的其他语句

if的注意点:

  1. 大括号的开头可以另起一行书写,但是建议写在第一行的末尾

  2. 在语句体中,如果只有一句代码,大括号可以省略不写

  3. 如果对一个布尔类型的变量进行判断,不要用==号


  • lf语句的第二种格式

  • 执行流程:

  • I.首先计算关系表达式的值

  • lI. 如果关系表达式的值为true就执行语句体1

  • III. 如果关系表达式的值为false就执行语句体2

  • IV.继续执行后面的其他语句


  • lf语句的第三种格式


switch语句

  • 执行流程:

  • I. 首先计算表达式的值。

  • ll.依次和case后面的值进行比较,如果有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。

  • III.如果所有的case后面的值和表达式的值都不匹配,就会执行default里面的语句体,然后结束整个switch语句。


  • 格式说明:

  • I. 表达式:(将要匹配的值)取值为byteshortintchar。JDK5以后可以是枚举,JDK7以后可以是String。

  • II. case: 后面跟的是要和表达式进行比较的值(被匹配的值)。

  • III. break:表示中断,结束的意思,用来结束switch语句。

  • IV. default:表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。

  • V. case后面的值只能是字面量,不能是变量

  • VI. case给出的值不允许重复


  • default的位置和省略
public class day5_01 {
    public static void main(String[] args) {
        /*
        default的位置和省略
        1.位置 : default,我们可以写在任意位置。只不过习惯会写在最下面
        2.省略 : default,语法不会有问题,但是不建议省略。
        */

        int number = 100;
        switch (number) {

            case 1:
                System.out.println("number的值为1");
                break;
            case 10:
                System.out.println("number的值为10");
                break;
            case 20:
                System.out.println("number的值为20");
                break;
            default:
                System.out.println("number的值不是1,10或者20");
                break;
        }

    }
}


  • case穿透
  1. case穿透
    就是语句体中没有写break导致的。

  2. 执行流程:
    首先还是会拿着小括号中表达式的值跟下面每一个case进行匹配。
    如果匹配上了,就会执行对应的语句体,如果此时发现了break,那么结束整个switch语句。
    如果没有发现break,那么程序会继续执行下一个case的语句体,一直遇到break或者右大括号为止。

  3. 使用场景:
    如果多个case的语句体重复了,那么我们考虑利用case穿透去简化代码。

import java.util.Scanner;

public class day5_03 {
    public static void main(String[] args) {
        /* 需求:键盘录入星期数,输出工作日、休息日。
           (1-5)工作日,(6-7)休息日。*/
        //分析:
        //1.键盘录入星期数
        Scanner sc = new Scanner(System.in);
        System.out.println("请录入一个整数表示星期");
        int week = sc.nextInt();
        //2.利用switch语句来进行选择
        switch (week) {
            case 1, 2, 3, 4, 5 -> System.out.println("工作日");
            case 6, 7 -> System.out.println("休息日");
            default -> System.out.println("没有这个星期");
        }
    }
}



  • switch新特性(jdk12)
public class day05_02 {
    public static void main(String[] args) {
        //需求:
        //123一二三
        /*int number = 1;
        switch (number) {
            case 1:
                System.out.println("一");
                break;
            case 2:
                System.out.println("二");
                break;
            case 3:
                System.out.println("三");
                break;
            default:
                System.out.println("没有这种选项");
                break;*/

        int number = 1;
        switch (number) {
            case 1 -> {
                System.out.println("一");
            }
            case 2 -> {
                System.out.println("二");
            }
            case 3 -> {
                System.out.println("三");
            }
            default -> {
                System.out.println("没有这种选项");
            }
        }

    }
}


switch和if第三种格式各自的使用场景
if的第三种格式:一般用于对范围的判断
switch:把有限个数据一一列举出来,让我们任选其一

posted @ 2023-10-25 21:51  _Elaina  阅读(34)  评论(0)    收藏  举报