Java基础之switch分支结构详解

网友投稿 268 2023-01-16

Java基础之switch分支结构详解

一、基本语法

二、流程图

1.画出 swthttp://ich 出流程

2.案例说明流程图

三、快速入门

案例:Switch01.java

请编写一个程序,该程序可以接收一个字符,比如:a,b,c,d,e,f,g

a 表示星期一,b 表示星期二 …

根据用户的输入显示相应的信息.要求使用 switch 语句完成

代码:

/*

案例:Switch01.java

请编写一个程序,该程序可以接收一个字符,比如:a,b,c,d,e,f,g

a表示星期一,b表示星期二 …

根据用户的输入显示相应的信息.要求使用 switch 语句完成

思路分析

1. 接收一个字符 , 创建Scanner对象

2. 使用switch 来完成匹配,并输出对应信息

代码

*/

Scanner myScanner = new Scanner(System.in);

System.out.println("请输入一个字符(a-g)");

char c1 = myScanner.next().charAt(0);//

//在java中,只要是有值返回,就是一个表达式

switch(c1) {

case 'a' :

System.out.println("今天星期一,猴子穿新衣");

break;

case 'b' :

System.out.println("今天星期二,猴子当小二");

break;

case 'c' :

System.out.println("今天星期三,猴子爬雪山..");

break;

//.....

default:

System.out.println("你输入的字符不正确,没有匹配的");

}

System.out.println("退出了switch ,继续执行程序");

四、switch 注意事项和细节讨论

//细节1

//表达式数据类型,应和case 后的常量类型一致,

//或者是可以自动转成可以相互比较的类型,比如输入的是字符,而常量是 int

//细节2

//switch(表达式)中表达式的返回值必须是:

//(byte,short,int,char,enum[枚举],String)

//细节3

//case子句中的值必须是常量(1,'a')或者是常量表达式,而不能是变量

//

//细节4

//default子句是可选的,当没有匹配的case时,执行default

//如果没有default 子句,有没有匹配任何常量,则没有输出

//

//细节5

//break语句用来在执行完一个case分支后使程序跳出switch语句块;

//如果没有写break,程序会顺序执行到switch结尾,除非执行到break

char c = 'b';

char c2 = 'c';

switch(c) {

case 'a' :

System.out.println("ok1");

break;

case 'b' :

System.out.println("ok2");

break;

default :

System.out.println("ok3");

}

System.out.println("退出了switch,继续执行..");

把上面的case b中的 break 都去掉,会都执行下面输出语句,不会跳出来。

五、switch 课堂练习

SwitchExercise.java

1.使用 switch 把小写类型的 char 型转为大写(键盘输入)。只转换 a, b, c, d, e. 其它的输出 “other”。

//使用 switch 把小写类型的

//char型转为大写(键盘输入)。只转换 a->A, b->B, c, d, e.

//其它的输出 "other"。

Scanner sc = new Scanner(System.in);

System.out.println("请输入a-e");

char c1 = sc.next().charAt(0);

switch(c1) {

case 'a' :

System.out.println("A");

break;

case 'b' :

System.out.println("B");

break;

case 'c' :

System.out.println("C");

break;

case 'd' :

System.out.println("D");

break;

case 'e' :

System.out.println("E");

break;

default :

System.out.println("你的输入有误~");

}

2.对学生成绩大于 60 分的,输出"合格"。低于 60 分的,输出"不合格"。(注:输入的成绩不能大于 100), 提示: 成绩/60

//对学生成绩大于60分的,输出"合格"。低于60分的,

//输出"不合格"。(注:输入的成绩不能大于100), 提示 成绩/60

//思路分析

//1. 这道题,可以使用 分支来完成, 但是要求使用switch

//2. 这里我们需要进行一个转换, 编程思路 :

// 如果成绩在 [60,100] , (int)(成绩/60) = 1

// 如果成绩在 [0,60) , (int)(成绩/60) = 0

//代码实现

Scanner sc = new Scanner(System.in);

System.out.println("请输入成绩在0-100之间:");

double score = sc.nextDouble();

if (score >= 0 && score<=100) {

switch ((int) (score / 60)) {

case 0:

System.out.println("不合格");

break;

case 1:

System.out.println("合格");

}

}else{

System.out.println("请输入成绩在0-100之间");

}

3.根据用于指定月份,打印该月份所属的季节。3,4,5 春季 6,7,8 夏季 9,10,11 秋季 12, 1, 2 冬季 [课堂练习, 提示: 使用穿透 ]

//根据用于指定月份,

//打印该月份所属的季节。

//3,4,5 春季 6,7,8 夏季 9,10,11 秋季 12, 1, 2 冬季

//[课堂练习, 提示 使用穿透 ]

//

//思路分析

//1. 创建Scanner对象, 接收用户输入

//2. 使用 int month 接收

//3. 使用switch 来匹配 ,使用穿透来完成,比较简洁

Scanner myScanner = new Scanner(System.in);

System.out.println("输入月份");

int month = myScanner.nextInt();

switch(month) {

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;

case 1:

case 2:

case 12:

System.out.println("这是冬季");

break;

default :

System.out.println("你输入的月份不对(1-12)");

}

六、switch 和 if 的比较

如果判断的具体数值不多,而且符合 byte、 short 、int、 char, enum[枚举], String 这 6 种类型。虽然两个语句都可以使用,建议使用 swtich 语句。其他情况:对区间判断,对结果为 boolean 类型判断,使用 if,if 的使用范围更广。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:使用SpringBoot自定义starter详解
下一篇:浅析Alibaba Nacos注册中心源码剖析
相关文章

 发表评论

暂时没有评论,来抢沙发吧~