/*
switch语句
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
..
..
default:
语句体n+1;
break;
}
B:switch语句的格式解释
(1):switch表示这是switch语句
表达式的取值:byte,short,int,char
JDK5以后可以是枚举(什么是枚举,以后再讲)
JDK7以后可以是String
(2):case后面跟的是要和表达式进行比较的值
(3):语句体部分可以是一条或多条语句
(4):break表示中断,结束的意思,可以结束switch语句
(5):default语句表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似
C:面试题
byte可以作为switch的表达式吗? 可以
long可以作为switch的表达式吗? 不可以
String可以作为switch的表达式吗? 可以,在JDK7以后
D:执行流程:
先计算表达式的值:
跟case里面的值进行匹配
如果成功 就执行匹配成功那个值下面语句,遇到break跳出,否则执行default控制的语句
A:整数(两个数的加减乘数)
有两个整数
键盘录入获取两个整数
有一句话 让你做选择
1:执行两个数的加法
2:执行两个数的减法
3:执行两个数的乘法
4:执行两个数的除法
*/
//导包
import java.util.Scanner; class SwitchDemo{ public static void main(String[] args) { //创建对象 Scanner sc = new Scanner(System.in); System.out.println("请录入第一个整数!"); int x = sc.nextInt(); System.out.println("请录入第二个整数!"); int y = sc.nextInt(); System.out.println("请选择您要做的操作:!"); System.out.println("1:加法 2:减法 3:乘法 4:除法"); int choose = sc.nextInt(); switch(choose){ case 1: System.out.println("两数之和是:"+(x+y)); break; case 2: System.out.println("两数之差是:"+(x-y)); break; case 3: System.out.println("两数之积是:"+(x*y)); break; case 4: System.out.println("两数之商是:"+(x/y)); break; default: System.out.println("暂时还没支持,以后给您支持!!"); } } }
/*
Switch语句注意事项
a:case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的
b:default可以省略吗?
可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。
c:break可以省略吗? 程序运行遇到break做跳出,没有遇到break往下执行,直到遇到break或者程序执行完
可以省略,但是结果可能不是我们想要的。
会出现一个现象:case穿透。
最终我们建议不要省略
d:default一定要在最后吗?
不是,可以在任意位置。但是建议在最后。
因为程序执行流程 是先做case的判断 case所有的值不匹配才去执行default中的语句
e:switch语句的结束条件
a:遇到break就结束了
b:执行到末尾就结束了
*/
//导包
import java.util.Scanner; class SwitchNoticeDemo{ public static void main(String[] args) { //创建对象 Scanner sc = new Scanner(System.in); System.out.println("请录入第一个整数!"); int x = sc.nextInt(); System.out.println("请录入第二个整数!"); int y = sc.nextInt(); System.out.println("请选择您要做的操作:!"); System.out.println("1:加法 2:减法 3:乘法 4:除法"); int choose = sc.nextInt(); //int a = 2; switch(choose){ case 1: System.out.println("两数之和是:"+(x+y)); break; /* case a:// 需要常量表达式 System.out.println("两数之差是:"+(x-y)); break; case 2://case 标签重复 System.out.println("两数之jkhjkl是:"+(x-y)); break; */ case 2: System.out.println("两数之差是:"+(x-y)); break; case 3: System.out.println("两数之积是:"+(x*y)); break; case 4: System.out.println("两数之商是:"+(x/y)); break; default: System.out.println("暂时还没支持,以后给您支持!!"); } } }
本文出自 “晴空” 博客,谢绝转载!
原文地址:http://hexudong.blog.51cto.com/7169867/1770843