java基础:流程控制(选择结构switch语句)
(1)格式:
switch(表达式) {
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
...
default:
语句体n+1;
break;
}
格式解释说明:
switch:说明这是switch语句。
表达式:可以是byte,short,int,char
JDK5以后可以是枚举
JDK7以后可以是字符串
case:后面的值就是要和表达式进行比较的值
break:表示程序到这里中断,跳出switch语句
default:如果所有的情况都不匹配,就执行这里,相当于if语句中的else
switch语句的注意事项:
A:case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的
B:default可以省略吗?
可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。
特殊情况:
case就可以把值固定。
A,B,C,D
C:break可以省略吗?
可以省略,但是结果可能不是我们想要的。
会出现一个现象:case穿透。
最终我们建议不要省略
D:default一定要在最后吗?
不是,可以在任意位置。但是建议在最后。
E:switch语句的结束条件
a:遇到break就结束了
b:执行到末尾就结束了
Demo: 键盘录入一个数据,根据这个数据,我们输出对应的星期? 键盘录入1,对应输出星期一 键盘录入2,对应输出星期二 ... 键盘录入7,对应输出星期日
分析: 1:键盘录入,用Scanner实现 2:判断我们既可以使用if语句,也可以使用我们要讲解的switch语句
注意: A:遇到左大括号缩进一个tab的位置。 B:关联不是很大的语句间空行
|
import java.util.Scanner;
class SwitchDemo { public static void main(String[] args) { //创建键盘录入对象 Scanner sc = new Scanner(System.in);
//控制键盘录入数据 System.out.println("请输入一个数据(1-7):"); int week = sc.nextInt(); //3
//switch判断语句 switch(week) { case 1: System.out.println("星期一"); break; case 2: System.out.println("星期二"); break; case 3: System.out.println("星期三"); break; case 4: System.out.println("星期四"); break; case 5: System.out.println("星期五"); break; case 6: System.out.println("星期六"); break; case 7: System.out.println("星期日"); break; default: System.out.println("你输入的数据有误"); break; } } } |
Code: 模拟单项选择题。
分析: A:出一个选择题,然后供你选择。 B:键盘录入选择的数据。 C:根据选择来给出你选择的结论。
|
import java.util.Scanner;
class SwitchTest2 { public static void main(String[] args) { //出一个选择题,然后供你选择。 //由于我们现在没有办法键盘录入得到一个'A','B' //这样的东西,我就用65,66这样的值替代 //将来我们获取到这样的值以后,强制转换为字符类型 System.out.println("下面的几个人你最爱谁?"); System.out.println("65 林青霞"); System.out.println("66 张曼玉"); System.out.println("67 刘德华"); System.out.println("68 王力宏");
//键盘录入选择的数据。 Scanner sc = new Scanner(System.in);
System.out.println("请输入你的选择:"); int choiceNumber = sc.nextInt();
//强制转换为字符类型 char choice = (char) choiceNumber;
switch(choice) { case 'A': System.out.println("恭喜你,选择正确"); break; case 'B': System.out.println("不好意思,你选择有误"); break; case 'C': System.out.println("不好意思,你选择有误"); break; case 'D': System.out.println("不好意思,你选择有误"); break; default: System.out.println("没有该选项"); break; } } } |
Code: 根据你键盘录入的字符串,判断是否有满足要求的,如果有就输出。 否则,提示有误。 String s = sc.nextLine(); |
import java.util.Scanner;
class SwitchTest3 { public static void main(String[] args) { //创建键盘录入对象 Scanner sc = new Scanner(System.in);
//录入数据 System.out.println("请输入你要判断的字符串:"); String s = sc.nextLine();
switch(s) { case "hello": System.out.println("你输入的是hello"); break; case "world": System.out.println("你输入的是world"); break; case "java": System.out.println("你输入的是java"); break; default: System.out.println("没有找到你输入的数据"); //break; } } } |
Code: 用switch语句实现键盘录入月份,输出对应的季节
分析: A:键盘录入一个月份,用Scanner实现 B:用switch语句实现即可
if语句和switch语句的区别? if语句: A:针对结果是boolean类型的判断 B:针对一个范围的判断 C:针对几个常量值的判断
switch语句: 针对几个常量值的判断
|
import java.util.Scanner;
class SwitchTest4 { public static void main(String[] args) { //创建键盘录入对象 Scanner sc = new Scanner(System.in);
//录入数据 System.out.println("请输入月份(1-12):"); int month = sc.nextInt();
/* switch(month) { case 1: System.out.println("冬季"); break; case 2: System.out.println("冬季"); break; case 3: System.out.println("春季"); break; case 4: System.out.println("春季"); break; case 5: System.out.println("春季"); break; case 6: System.out.println("夏季"); break; case 7: System.out.println("夏季"); break; case 8: System.out.println("夏季"); break; case 9: System.out.println("秋季"); break; case 10: System.out.println("秋季"); break; case 11: System.out.println("秋季"); break; case 12: System.out.println("冬季"); break; default: System.out.println("你输入的月份有误"); } */
//这样写太麻烦了,我们使用一个我们不想使用的东西:case穿透 switch(month) { case 1: case 2: case 12: System.out.println("冬季"); break; case 3: case 4: case 5: System.out.println("春季"); break; case 6: case 7: case 8: System.out.println("夏季"); break; case 9: case 10: case 11: System.out.println("秋季"); break; default: System.out.println("你输入的月份有误"); } } } |