2.Java 语言 switch 语句详解

switch 语句

笔记创建时间:May 26, 2016 12:47 AM

  1. switch 语句称为情况选择语句,又称为开关语句
  2. switch 是分支语句的一种,用于对多种情况惊喜不同处理的语句。
  3. JDK1.7 之前的 switch 语句限定对整型数据进行判断。

switch 语句定义格式

1
2
3
4
5
6
7
8
9
10
11
switch(表达式){
case 常量值 1:
代码块 1;
break;
case 常量值 2:
代码块 2;
break;
......
default:
以上常量值均不是时,执行本代码。
}

案例 1

判断 int 类型的数据
键盘输入一个 5 分制的分数,根据以下频分标准给出成绩的等级
5 分:优秀
4 分:优良
3 分:及格
0~2 分:不及格

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public class Test04{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.println("输入 5 分制数");
int score = scanner.nextInt();
switch(score){
case 5:
System.out.println("优秀");
break;
case 4:
System.out.println("良好");
break;
case 3:
System.out.println("及格");
break;
case 2:
case 1:
case 0:
System.out.println("不及格");
break;
default:
System.out.println("输入的分数不是 5 分制的分数");
}
}
}

实例 2

switch 语句的“贯穿”现象

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int score = 4;
switch(score){
case 5:
score++;
case 4:
score++;
case 3:
score++;
case 2:
score++;
case 1:
score++;
case 0:
score++;
default:
System.out.println(score);
}

由于没有break,从case 4:一直贯穿到default语句。

实例 3

键盘输入优、良、中、差,给出相应的分数 5、4、3、2。
解题步骤:

  1. 创建 Scanner 对象;
  2. 通过键盘接收一个 char 类型的数据->grade
  3. 用 switch 对 grade 的值进行判断,根据不同的等级显示不同的分数。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public class Test06{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.println("输入分制等级");
char grade = scanner.next().charAt(0);
switch(score){
case '优':
System.out.println(5);
break;
case '良':
System.out.println(4);
break;
case '中':
System.out.println(3);
break;
case '差':
System.out.println(2);
break;
default:
System.out.println("输入的分数等级错误");
}
}
}

实例 4

显示指定月天数。不考虑闰年 2 月份的情况。

  1. 创建 Scanner 对象;
  2. 通过键盘接收一个 int 类型的数据->month,代表月份值;
  3. 用 switch 对 month 的值进行判断,根据月份显示相应的天数。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
public class Test04{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.println("输入月份");
int month = scanner.nextInt();
switch(month){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
System.out.println("31");
break;
case 2:
System.out.println("28");
break;
case 4:
case 6:
case 9:
case 11:
System.out.println("30");
break;
default:
System.out.println("输入的月份错误");
}
}
}

2.Java 语言 switch 语句详解
https://bubao.github.io/posts/e4d05c03.html
作者
一念
发布于
2016年7月27日
许可协议