前面学习的if选择结构主要针对的是区间判断,但现实生活中不只有区间判断还有等值判断。switch结构可以更好的解决等值判断问题,语法格式如下所示:
switch(表达式){
case 常量1:
//代码块1;
break;
case常量2:
//代码块2;
break;
....
default:
//代码块n;
break;
}
这里switch,case,default,break都是Java的关键字。
解释:
switch选择结构用到了4个关键字,下面将一一介绍。
●switch:表示“开关”,这个开关就是swich关键字后面小括号里的值,小括号里要放一个整型变量(表达式)或字符型变量(表达式)。
●case: 表示“情况、情形””,case 后必须是一一个整型或字符型的常量,通常是一个固定的字符、数字,如8、‘a’。case 块可以有多个,顺序可以改变,但是每个case 后常量的值必须各不相同。
●default:表示“默认”,即其他情况都不满足。default 后要紧跟冒号。default 块和case块的先后顺序可以变动,不会影响程序执行的结果。通常,default 块放在末尾,也可以省略。
break:表示“停止”,即跳出当前结构。
执行顺序
先计算并获得switch后面小括号里的表达式或变量的值,然后将计算结果顺序与每个case后的常量比较,当二者相等时,执行这个case块中的代码;当遇到break时,就跳出switch 选择结构,执行switch选择结构之后的代码。如果没有任何一个case后的常量与switch 后的小括号中的值相等,则执行switch末尾部分的default 块中的代码。
案例:
王玲参加计算机编程大赛
如果获得第一名,将参加麻省理工大学组织的一个月夏令营
如果获得第二名,将奖励惠普笔记本电脑一部
如果获得第三名,将获得移动硬盘一个
否则,没有奖励
import java.util.Scanner;
/**
* @author xcdq.SGS
* @date 2021/4/14 23;02
*/
public class demo4 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("你获得了第几名:");
int mingci = input.nextInt();
switch (mingci) {
case 1:
System.out.println("参加麻省理工大学组织的一个月夏令营");
break;
case 2:
System.out.println("奖励惠普笔记本电脑一部");
break;
case 3:
System.out.println("奖励移动硬盘一个");
break;
default:
System.out.println("没有任何奖励");
break;
}
}
}