/*
switch(表达式){
case 常量1:
语句1;
//break;
case 常量2:
语句2;
//break;
……
default:
语句;
//break;
说明:
1.按照switch表达式里的值,依次匹配各个case中的常量,一旦成功匹配,则进入相应的case结构,调用执行语句。
当调用完执行语句之后,则仍然向下执行其他case结构的执行语句,直到遇到break关键字或者到达此switch结构末尾为止。
2.switch结构中的表达式,只能是如下的六种数据类型之一:byte、short、char、int、枚举类型、String类型
3.case之后只能跟常量,不能声明范围
4.break关键字是可选的
5.default相当于if-else结构中的else,也是可选的。
6.凡是可以使用switch-case的格式都可以转换成if-else,反之,则不行。
7.当我们写分支结构时,发现既可以使用switch-case又可以使用if-else时,且switch的表达式取值常量数量不多时,推荐使用switch-case
}
*/
import java.util.Scanner;
public class liuckz {
public static void main(String[] agrs) {
int num=2;
switch(num) {
case 0:
System.out.println("zero");
break;
case 1:
System.out.println("one");
break;
case 2:
System.out.println("three");
break;
case 3:
System.out.println("four");
break;
default:
System.out.println("other");
}
//String型
String season="spring";
switch(season) {
case "spring":
System.out.println("春暖花开");
break;
case "summer":
System.out.println("夏日炎炎");
break;
case "autumn":
System.out.println("秋高气爽");
break;
case "winter":
System.out.println("白雪皑皑");
break;
default:
System.out.println("您输入的季节有误");
break;
}
/*
例题1:
使用switch把小写类型的char转换成大写,只转换a,a,b,c,d,e,其他的输出“other”
*/
Scanner scan= new Scanner (System.in);
System.out.println("请输入一个小写字母:");
String word=scan.next();
char c=word.charAt(0);
switch(c) {
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");
}
/*
例题2:
对学生成绩大于60分的,输入“合格”;低于60分的,输出“不合格”
*/
System.out.println("请输入学生成绩:(0~100)");
int score=scan.nextInt();
switch(score/60) {
case 1:
System.out.println("合格");
break;
case 0:
System.out.println("不合格");
break;
default:
System.out.println("请输入符合规范的成绩");
break;
}
/*
例题3:
根据指定的月份,打印该月份所属的季节。
3,4,5春季;6,7,8夏季;9,10,11,秋季;12,1,2冬季。
*/
System.out.println("请输入月份:");
int months=scan.nextInt();
switch(months/3) {
case 1:
System.out.println("spring");
break;
case 2:
System.out.println("summer");
break;
case 3:
System.out.println("autumn");
break;
default:
System.out.println("winter");
}
//**************************************++++++较难+++++**************************************
/*
例题4:
编写程序,从键盘上输入2019年的“month”和“day”,要求通过程序输出输入日期为2019年的第几天
*/
System.out.println("请输入月份:");
int month=scan.nextInt();
System.out.println("请输入日期:");
int day=scan.nextInt();
int days=0;
//按老师提示后想到的方法:利用break的可选,实现累加
switch(month) {
case 12:
days+=30;
case 11:
days+=31;
case 10:
days+=30;
case 9:
days+=31;
case 8:
days+=31;
case 7:
days+=30;
case 6:
days+=31;
case 5:
days+=30;
case 4:
days+=31;
case 3:
days+=28;
case 2:
days+=31;
case 1:
days+=day;
}
System.out.println("2019年"+month+"月"+day+"日是2019年第"+days+"天");
//***********************************************************************************************
}
}