switch-case结构
/*
分支结构二:switch-case
1.格式
switch(表达式){
case 常量1:
执行语句;
//break;
case 常量2:
执行语句;
//break;
...
default:
执行语句;
//break;
}
2.说明:
(1)根据switch表达式中的值,依次匹配各个case中的常量,一旦匹配成功,则进入相应case结构中,
调用其执行语句。当调用完这个执行语句之后,仍然继续向下执行其他case结构中的执行语句,直到遇到
break关键字或此switch-case结构末尾为止。
(2)break可以使用在switch-case结构中,表示一旦执行到此关键字,就跳出switch-case结构
(3)switch结构中的表达式,只能是如下的六种数据类型之一:
byte,short,char,int,String(JDK7.0新增),枚举类型(JDK5.0新增)
(4)case之后只能定义常量,不能定义范围
(5)break关键字根据实际情况选择加或不加
(6)default:相当于if-else结构中的else,default结构可选,位置也灵活(default也可放在switch的下一行,
但也得考虑实际情况,注意break)
(7)如果switch-case结构的多个case的执行语句相同,则可以考虑合并
*/
class SwitchCase{
public static void main(String[] args){
System.out.println();
int number=2;
switch(number){
case 0:
System.out.println("zero");
case 1:
System.out.println("one");
case 2:
System.out.println("two");
case 3:
System.out.println("three");
default:
System.out.println("others");
}
}
} 输出:two,three,others
class SwitchCase{
public static void main(String[] args){
System.out.println();
int number=2;
switch(number){
case 0:
System.out.println("zero");
break;
case 1:
System.out.println("one");
break;
case 2:
System.out.println("two");
break;
case 3:
System.out.println("three");
break;
default:
System.out.println("others");
break;
}
}
} //输出结果:two
练习一:
/*使用 switch 把小写类型的 char型转为大写。只转换 a, b, c, d, e. 其它的输 出 “other”。
提示:String word = scan.next(); char c = word.charAt(0); switch(c){}*/
import java.util.Scanner;
class SwitchCase{
public static void main(String[] args){
Scanner scan=new Scanner(System.in);
System.out.println("请输入小写字母:");
String word=scan.next();
switch(word) {
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("other");
}
}
}
练习二:
/*对学生成绩大于60分的,输出“合格”。低于60分的,输出“不合格”。*/
class SwitchCase{
public static void main(String[] args){
int score=78;
switch(score/10){
case 1:
case 2:
case 3:
case 4:
case 5:
System.out.println("不及格");
break;
case 6:
case 7:
case 8:
case 9:
case 10:
System.out.println("及格");
break;
//最优解
/* switch(score/60){
case 0:
System.out.println("不及格");
break;
case 1:
System.out.println("及格");
break;}*/
}
}
}
练习三:
从键盘上输入2019年的“month”和“day”,要求通过程序 输出输入的日期为2019年的第几天。
//不需要break的实例
import java.util.Scanner;
class SwitchCase{
public static void main(String[] args){
Scanner scan=new Scanner(System.in);
System.out.println("请输入2019年的month:");
int month=scan.nextInt();
System.out.println("请输入2019年的day");
int day=scan.nextInt();
int sumDays=0;
switch(month){
case 12:
sumDays+=30;
case 11:
sumDays+=31;
case 10:
sumDays+=30;
case 9:
sumDays+=31;
case 8:
sumDays+=31;
case 7:
sumDays+=30;
case 6:
sumDays+=31;
case 5:
sumDays+=30;
case 4:
sumDays+=31;
case 3:
sumDays+=28;
case 2:
sumDays+=31;
case 1:
sumDays+=day;
}
System.out.println("2019年"+month+"月"+day+"日是当年的第"+sumDays+"天");
}
}