switch语句有关规则
1.表达式的返回值必须是下述几种类型之一:
int、byte、char、short、确定的结果、jdk1.7后支持String
2.case子句中的取值必须是常量,且所有case子句中的取值应是不同的。
3.default子句是可选的
4.break语句用来在执行完一个case分之后使程序跳出switch语句块;
如果case后面没有写break则直接往下执行
5.case后面的执行体可写{ }也可以不写{ }
语法表达:
switch(表达式){
case取值1:语句块1;
break;
case取值n:语句块n;
break;
default:语句块n+1;
break;
}
练习:
//编写一个程序实现如下功能:输入1、2、3、4、5、6、7(分别对应星期一至星期日)中任何一个数
import java.util.Scanner;
public class Test19{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.println("今天是星期几?");
int day = input.nextInt();
//switc括号内的表达式的返回值必须是 int、byte、char、short、jdk1.7后支持String
switch(day){
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期日");
break;
default:
System.out.println("地球不适合你,你回火星吧!");
break;
}
}
}
switch与if嵌套
switch(表达式){
case取值n:语句块n;
if(表达式){
执行语句1;
}else if(表达式){
执行语句n;
}else{
执行语句n+1;
}
break;
default:语句块n+1;
break;
}
练习:
//编写一个程序实现如下功能:输入1、2、3、4、5、6、7(分别对应星期一至星期日)中任何一个数
import java.util.Scanner;
public class Test18{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.println("今天是星期几?");
int day = input.nextInt();
//switc括号内的表达式的返回值必须是 int、byte、char、short、jdk1.7后支持String
switch(day){
case 1:
System.out.println("今天是星期一,路上比较堵,请慎重选择出行方式:1.公交;2.地铁");
int style = input.nextInt();
if(style == 1){
System.out.println("公交出行");
}else{
System.out.println("地铁出行");
}
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期日");
break;
default:
System.out.println("地球不适合你,你回火星吧!");
break;
}
}
}