概述
核心代码:
/*
switch语句格式:
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:当所有的值都和表达式不匹配的时候,就执行default控制的语句。其实它就相当于if语句的else。
面试题:
byte可以作为switch的表达式吗?可以,
long可以作为switch的表达式吗?不可以,
String可以作为switch的表达式吗?JDK7以后可以
案例:
键盘录入一个数据,根据这个数据,我们输出对应的星期?
键盘录入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;
}
}
}
//
/*
switch语句的注意事项:
A:case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的
B:default可以省略吗?
可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。
特殊情况:
case就可以把值固定。
A,B,C,D
C:break可以省略吗?
可以省略,但是结果可能不是我们想要的。
会出现一个现象:case穿透。
最终我们建议不要省略
D:default一定要在最后吗?
不是,可以在任意位置。但是建议在最后。
E:switch语句的结束条件
a:遇到break就结束了
b:执行到末尾就结束了
*/
import java.util.Scanner;
class SwitchDemo2 {
public static void main(String[] args) {
//创建键盘录入对象
Scanner sc = new Scanner(System.in);
//控制键盘录入数据
System.out.println("请输入一个数据(1-7):");
int week = sc.nextInt(); //3
//定义常量
//int number = 3;
//然后把case后面的值改为number,就会报错
//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;
}
}
}
//SwitchTest
/*
看程序写结果
*/
class SwitchTest {
public static void main(String[] args) {
int x = 2;
int y = 3;
switch(x){
default:
y++;
break;
case 3:
y++;
case 4:
y++;
}
System.out.println("y="+y);
System.out.println("---------------");
int a = 2;
int b = 3;
switch(a){
default:
b++;
case 3:
b++;
case 4:
b++;
}
System.out.println("b="+b);
}
}
SwitchTest2
/*
模拟单项选择题。
分析:
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;
}
}
}
SwitchTest3
/*
根据你键盘录入的字符串,判断是否有满足要求的,如果有就输出。
否则,提示有误。
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;
}
}
}
//SwitchTest4
/*
用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("你输入的月份有误");
}
}
}
- 邮箱:ithelei@sina.cn
- 技术讨论群:687856230
- GoodLuck
最后
以上就是痴情铃铛为你收集整理的选择结构(switch语句)的全部内容,希望文章能够帮你解决选择结构(switch语句)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复