switch语句和case语句的特性
**
switch语句和case语句的特性
**
switch语句格式:
switch(表达式) {
case 常量值1:
语句体1;
break;
case 常量值2:
语句体2;
break;
...
default:
语句体n+1;
break;
}
执⾏顺序:
1. ⾸先计算表达式的值;
2. 然后,和case的值依次进⾏⽐较,遇到相对应的值就会匹配对应的结果,遇到break,就会退出整个循环;
3. 如果所有的case都和表达式的值不匹配,就会执⾏default语句体部分,然后程序结束掉。;
public class Dome01 {
// 判断星期⼏
public static void main(String[] args) {
int day=6;
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("你输⼊的数字有误");
}
}
}
switch语句中,表达式的数据类型,可以是byte,short,int,char,enum(枚举),JDK7后可以接收字符串。case语句的穿透性
// 没有break语句的时候
public class Dome01 {
// 判断星期⼏
public static void main(String[] args) {
int day=4;
switch (day){
case 1:
System.out.println("星期⼀");
case 2:
System.out.println("星期⼆");
case 3:
System.out.println("星期三");
case 4:
System.out.println("星期四");
case 5:
System.out.println("星期五");
case 6:
System.out.println("星期六");;
case 7:
System.out.println("星期七");
default:
System.out.println("你输⼊的数字有误");
}
}
}
当缺少break语句的时候,case将出现穿透现象,也就是不会在判断下⼀个case的值,直接向后运⾏,直到遇到break,或者整体switch结束。
利⽤case语句的穿透性
case语句拥有穿透性,我们可以根据这个特性,判断这天属于本⽉的上旬,中旬或者下旬。
我们规定1-10为上旬,11-20为中旬,21-31为下旬。
public class Dome01 {
public static void main(String[] args) {
int day=14;
switch (day){
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
case 10:
System.out.println("今天是"+day+"⽇,本⽉上旬");
break;
case 11:
case 12:
case 13:
case 14:
case 15:
case 16:
case 17:
case 18:
case 19:
case 20:
System.out.println("今天是"+day+"⽇,本⽉中旬");
break;
case 21:
case 22:
case 23:
case 24:
case 25:
case 26:
case 27:
case 28:
case 29:
case 30:
case 31:
System.out.println("今天是"+day+"⽇,本⽉下旬");
break;
default:
System.out.println("你输⼊的数字有误");
}
switch case判断字符串}
}
由于case存在穿透性,因此初学者在编写switch语句时,必须要写上break。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论