switch选择语句:开关,转换
语法说明:

  • 表达式的类型只能是byte、short、char和int这四种。
  • 值n只能为常数或常量,不能为变量。
  • 功能代码部分可以写任意多句。
  • break关键字的意思是中断,指结束switch语句,break语句为可选。
  • case语句可以有任意多句,是标号语句。
  • default语句可以写在switch中的任意位置,功能类似于if语句中的else。

下面是一个根据月份获得每个月的天数(不考虑闰年)的switch语句代码示例:

import java.util.Scanner;


public class example06 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);/新建一个sannner来获取用户输入
        System.out.println("请输入月份整数:");
        int month = scanner.nextInt();
        int days = 0;

        switch (month){
            case 1:
                days = 31;
                break;
            case 2:
                days = 28;
                break;
            case 3:
                days = 31;
                break;
            case 4:
                days = 30;
                break;
            case 5:
                days = 31;
                break;
            case 6:
                days = 30;
                break;
            case 7:
                days = 31;
                break;
            case 8:
                days = 31;
                break;
            case 9:
                days = 30;
                break;
            case 10:
                days = 31;
                break;
            case 11:
                days = 30;
                break;
            case 12:
                days = 31;
                break;
        }
        scanner.close();
        System.out.println(month + "月的天数是" + days + "天");
    }
}

以上代码中的代码块可以简化为:

public class example06_01 {
    public static void main(String[] args) {
        int monnth_01= 10;
        int days = 0;
        switch (monnth_01){
            case 2:
                days = 28;
                break;
            case 4://条件可以写在一起
            case 6:
            case 9:
            case 11:
                days = 30;
                break;
            default:
                days = 31;
        }
        System.out.println(days);

    }
}

注意:

  • switch不是很适合进行区间的判别,更多的区间判别一般还是使用if-elseif语句来进行实现。
  • if语句可以实现程序中的所有的条件,switch语句特别适合一系列点相等的判别,结构也比较清晰,而且执行速度比if语句要稍微快一些,在实际的代码中,可以根据需要使用对应的语句来实现程序要求的逻辑功能。

代码块分析:

int score = 87;
      switch (score / 10){//得出十位上的数值
          case 9:
              System.out.println('A');
              break;
          case 8:
              System.out.println('B');
              break;
          case 7:
              System.out.println('C');
              break;
          case 6:
              System.out.println('D');
              break;

          default:
              System.out.println('E');
      }

附录:

  • continue语句只能在循环语句内部,功能是跳过该次循环,继续执行下一次循环结构。
  • 在while和do…while语句中continue语句跳转到循环条件处开始继续执行,而在for语句中continue语句跳转到迭代语句处开始继续执行。
    示例代码如下:
int i = 0;
        while (i < 4);
        i ++;
        if (i == 2) {
            continue;
        }
        System.out.println(i);
    }

最后

  1. 关于定义标签原则的提示: 对Java来说,唯一用到标签的地方是在循环语句之前。它实际需要紧靠在循环语句之前——在标签和循环之间置入任何语句都是不明智的。
  2. 而在循环之前设置标签的唯一理由是: 我们希望在其中嵌套另一个循环或者一个开关。这是由于break和continue关键字通常只中断当前循环,但若随标签一起使用,它们就会中断到存在标签的地方。