分支结构:switch-case

1.格式

switch(表达式){
case 常量1:
执行语句1;
case 常量2:
执行语句2;
……
defalut:
执行语句n;
//break
}

2.说明

1)根据switch表达式中的值,依次匹配各个case中的常量,一旦匹配成功,则进入相应case结构中,调用其执行语句。当调用完执行语句以后,则仍然继续向下执行其他case结构中的执行语句,直到遇到break关键字或此末尾结束为止。

2)break,可以使用在switch-case结构中,表示一旦执行到此关键字,就跳出switch结构。

3)switch结构中的表达式,只能是以下六种类型之一:byte、short、char、int、枚举类型(jdk5.0新增类型)、String(jdk7.0新增类型)。

4)case之后只能声明常量,不能声明范围。只能是==的关系。不能判断布尔类型(如 case(a>3):)

5)break关键字是可选的。

6)default相当于if-else的else。efault结构是可选的。位置灵活,可放在末尾,可放在开头,也可放在几个case中间。先看case,再看default,看完default再往下走。不想往下走加上break。

例1:

代码实现:

class SwitchCaseTest{
public static void main(String[] args){
int num=2;
switch(num){
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("other");
}
}
}

编译实现:

java中switch嵌套switch java中switch case_java中switch嵌套switch

------------恢复内容开始------------

分支结构:switch-case

1.格式

switch(表达式){
case 常量1:
执行语句1;
case 常量2:
执行语句2;
……
defalut:
执行语句n;
//break
}

2.说明

1)根据switch表达式中的值,依次匹配各个case中的常量,一旦匹配成功,则进入相应case结构中,调用其执行语句。当调用完执行语句以后,则仍然继续向下执行其他case结构中的执行语句,直到遇到break关键字或此末尾结束为止。

2)break,可以使用在switch-case结构中,表示一旦执行到此关键字,就跳出switch结构。

3)switch结构中的表达式,只能是以下六种类型之一:byte、short、char、int、枚举类型(jdk5.0新增类型)、String(jdk7.0新增类型)。

4)case之后只能声明常量,不能声明范围。只能是==的关系。不能判断布尔类型(如 case(a>3):)

5)break关键字是可选的。

6)default相当于if-else的else。efault结构是可选的。位置灵活,可放在末尾,可放在开头,也可放在几个case中间。先看case,再看default,看完default再往下走。不想往下走加上break。

例1:

代码实现:
class SwitchCaseTest{
public static void main(String[] args){
int num=2;
switch(num){
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("other");
}
}
}

编译实现:

java中switch嵌套switch java中switch case_java中switch嵌套switch

例2:使用switch把小写类型的char型转为大写,只转换a,b,c,d,e,其余的输出"other"

提示:String word=scan.next();   char c=word.charAt(0); swicth(c){}

还没做

例3:对学生成绩大于60分的,输出“合格“,低于60分的,输出“不合格“。

代码实现:

class SwitchCaseTest{
public static void main(String[] args){
int score = 70;
switch(score / 10){
case 0:
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-case结构中的多个执行语句相同,可考虑进行合并。

编译实现:

java中switch嵌套switch java中switch case_java中switch嵌套switch_03

例4:根据用于指定月份,打印该月份所属的季节。

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

代码实现:

class SwitchCaseTest{
public static void main(String[] args){
int season = 2;
switch(season){
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 12:
case 1:
case 2:
System.out.println("冬季");
break;
}
}
}

编译实现:

java中switch嵌套switch java中switch case_代码实现_04

例5:编写程序:从键盘上输入2019年的"month"和“day”,要求输出的日期为2019年的第几天。(日积月累)

方法1代码:

import java.util.Scanner;
class SwitchCaseTest{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
System.out.println("请输入你的月份:");
int month = scan.nextInt();
System.out.println("请输入你的天数:");
int day = scan.nextInt();
int sumDays = 0;
switch(month){
case 1:
sumDays = day;
break;
case 2:
sumDays = 31 + day;
break;
case 3:
sumDays = 31 + 28 + day;
break;
case 4:
sumDays = 31 + 28 + 31 +day;
break;
...
}
System.out.print("2019年"+month+"月"+day+"日是当年的第"+sumDays+"天");
}
}

方法2代码:(这种方法不需要用break,还省时)

import java.util.Scanner;
class SwitchCaseTest{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
System.out.println("请输入你的月份:");
int month = scan.nextInt();
System.out.println("请输入你的天数:");
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.print("2019年"+month+"月"+day+"日是当年的第"+sumDays+"天");
}
}

编译运行:

java中switch嵌套switch java中switch case_java_05