switch-case分⽀结构总结
1,格式
switch(表达式){
case 常量1:执⾏语句1;
case 常量1:执⾏语句1;
... ...
case 常量n:执⾏语句n;
default:执⾏语句;}
2,说明:
根据switch表达式中的值,依次匹配各个case中的常量。⼀旦匹配成功,则进⼊相应case结构中,调⽤其执⾏语句。当调⽤完执⾏语句以后,则仍然继续向下执⾏其他case结构中的执⾏语句,直到遇到break关键字或此switch-case结构的末尾处;
break,可以使⽤在switch-case结构中,表⽰⼀旦执⾏到此关键字,就跳出switch-case结构;
switch结构中的表达式,只能是如下的6种类型之⼀:byte short char int 枚举类型(JDK 5.0新增),string类型(jdk7.0新增)
case之后只能声明常量,禁⽌写范围
break关键字是可选的
default相当于IF-ELSE结构中的 else;default结构是可选的;位置是可选的,但⼀般写最后;
3.练习
练习⼀:使⽤switch把⼩写类型的char转换为⼤写,只转换啊a,b,c,d,e,其他的输出为other;
1import java.util.Scanner;
2
3public class SwitchTest1 {
4public static void main (String args[]) {
5 System.out.println("请输⼊⼀个字符:");
6Scanner scan=new Scanner(System.in);
7 String intput = ();
8 char c=intput.charAt(0);
9switch(c){
10case('a'):
11 System.out.println('A');
12break;
13case('b'):
14 System.out.println('B');
15break;
16case('c'):
17 System.out.println('C');
18break;
19case('d'):
20 System.out.println('D');
21break;
22case('e'):
23 System.out.println('E');
24break;
25default:System.out.println("other");
26
27 }
28
29 }
30
运⾏结果:
练习⼆:对学⽣成绩⼤于60分的,输出合格,低于60分的,输出不合格;
1import java.util.Scanner;
2
3public class switchTest2 {
4public static void main(String args[]) {
5 System.out.println("请输⼊你的成绩:");
6 Scanner grade=new Scanner(System.in);
7int Int();
8switch(grade1/60) {
9case(0):
10 System.out.println("不合格");
11break;
12case(1):
13 System.out.println("合格");
14break;
15 }
16 }
17
18 }
运⾏结果:
切记switch变量不能使⽤范围,⽽当情况种数较多时,⼀⼀列出显然不必,switch结构具有多个case可以合并的性质。⼀开始想到的是将变量写为grade1/10,case0-5输出为不合格,case6-10输出为合格;如图所⽰:
但显然没有除以60⾼效,所以做出修改;
练习三:从键盘分别输⼊年⽉⽇,判断这⼀天是当年的第⼏天?
注:判断⼀年是不是闰年的标准:①可以被4整除,但不能被100整除;或②可以被400整除;
1import java.util.Scanner;
2
3/*
4从键盘分别输⼊年⽉⽇,判断这⼀天是当年的第⼏天?
5
6注:判断⼀年是不是闰年的标准:①可以被4整除,但不能被100整除;或②可以被400整除;
7*/
8public class SwitchExer {
9public static void main(String args[]) {
10 Scanner scan=new Scanner(System.in);
11 System.out.println("请输⼊年份:");
12int Int();
13 System.out.println("请输⼊⽉份:");
14int Int();
15 System.out.println("请输⼊天数:");
16int Int();
17int sumdays=0;
18switch(month) {
19case 12:
20 sumdays +=30;
21case 11:
22 sumdays +=31;
23case 10:
24 sumdays +=30;
25case 9:
26 sumdays +=31;
27case 8:
28 sumdays +=31;
29case 7:
30 sumdays +=30;
31case 6:
32 sumdays +=31;
33case 5:
34 sumdays +=30;
35case 4:
36 sumdays +=31;
37case 3://判断是不是闰年
38if((year%4==0 && year%100!=0) || year%400==0) {
39 sumdays +=29;
40 }else sumdays+=28;
41case 2:
42 sumdays +=31;
43case 1:
44 sumdays += day;switch case判断字符串
45default:System.out.println("输⼊有误,请重新输⼊:");
46 }
47 System.out.println(year+"年"+month+"⽉"+day+"⽇是当年的第"+sumdays+"天");
48 }
49 }
运⾏结果:
4,两个分⽀结构的使⽤选择策略:
凡是可以使⽤switch—case 都可以使⽤If-else,反之,不成⽴;
如果两者都可以使⽤(switch中表达式的取值情况不太多时),优先选择switch-case结构;原因:switch-case执⾏效率稍⾼;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论