Java学习之旅(六):条件语句之 switch 多分支语句
程序员文章站
2022-07-15 16:57:59
...
在编程中一个常见的问题就是检测一个变量是否符合某个条件,如果不符合,再用另一个值来检测,依此类推。当然,这种情况下也可以使用 if 语句来完成。
if (grade == 'A') {
System.out.println("优秀")
}
if (grade == 'B') {
System.out.println("良好")
}
显然,这个程序看起来比较笨重,程序员需要测试不同的值来给出输出语句。在Java中,可以用switch语句来将动作组织起来,以一个比较简单明了的方式来实现“多选一”的选择。语法如下:
switch(表达式)
{
case 常量值1:
语句块1;
break;
case 常量值2:
语句块2;
break;
...
case 常量值n:
语句块n;
break;
default:
语句块n + 1;
break;
}
switch语句中表达式的值必须是整型、字符型或字符串类型,常量值1~n也必须是整型、字符型或字符串类型。switch语句首先计算表达式的值,如果表达式的值和某个case后面的常量值相同,则执行该case语句后面的若干个语句直到遇到break语句为止。此时如果该case语句中没有break语句,将继续执行后面case中的若干个语句,直到遇到break为止。若没有一个常量的值与表达式的值相同,则执行default后面的语句。default语句是可选的,如果它不存在,且switch语句中的表达式的值不与任何case的常量值相同,switch则不做任何处理。
同一个switch语句,case的常量值必须互不相同。
switch语句的执行过程如下所示:
public class test {
public static void main(String[] args) {
int day = 7;
switch(day) {
case 1:
System.out.println("Monday");
break;
case 2:
System.out.println("Tuesday");
break;
case 3:
System.out.println("Wednesday");
break;
case 4:
System.out.println("Thursday");
break;
case 5:
System.out.println("Friday");
break;
case 6:
System.out.println("Saturday");
break;
case 7:
System.out.println("Sunday");
break;
default:
System.out.println("NULL");
}
}
}
在switch语句中,case语句后常量表达式的值可以为整数,但绝不可以是实数。即case 1.1是非法的。