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