在编程语言中,条件语句一般除了if结构,还有一个switch语句结构。在选择条件少时,if语句很适合,也很简单。但是当情况变多的时候,再使用if语句就显得很复杂、很难以理解了。而这时就可以使用switch语句结构来解决问题。所以来说,当出现多重条件是,应该尽可能的使用switch语句来解决问题。其结构一般为:
Switch(条件变量Svariable)
{
casevalue1: 满足条件的结果情况; break;
casevalue2: 满足条件的结果情况; break;
casevalue3: 满足条件的结果情况; break;
…
casevalueN: 满足条件的结果情况; break;
default:处理错误的函数
}
注意一:条件变量Svariable必须是能计算出一个char、byte、short或int型值。
注意二:Value的类型必须与条件变量Svariable的类型一样。如Svariable是int型,则value就要是int型如0、1、2….,需要注意的是,当Svariable是char型时,value的值需要用“’’”包住,如“ ’A ’”。
注意三:break关键字是可选的,它的作用是终止整个switch语句。如果没有break关键词;不管有没有找到满足的条件,语句都会顺序执行。最后会执行处理处理错误的函数。如有有break关键词,当找到满足的条件后,整个switch语句就会终止。
注意四:default情况是可选的,它的的作用是处理出现所有条件都没满足的情况,给用户提示。
下面用学生成绩等级的例子来加深理解switch语句:成绩等级A是90到100,B是75到90,C是60到75,D是低于60.要求输入成绩等级,显示分数范围,等级错误时,提示用户重新输入:
char grade='A';
switch(grade)
{
case 'A': System.out.println("A is thatthe score is 90<=score<=100");break;
case 'B': System.out.println("B is thatthe score is 75<=score<90");break;
case 'C': System.out.println("C is thatthe score is 60<=score<75");break;
case 'D': System.out.println("D is thatthe score is 0<=score<60");break;
default:System.out.println("Wrongof the grade .Please re-enter it"); break;
}
通过上面的例子对比之前的switch结构,我们可以看出char型变量grade是swi语句结构中的条件Svariable变量,而grade变量的值A、B、C、D则是相对的vaule1,vaule2,vaule2,vaule3。因为是char变量,所以用“'A'”表示。再来说一下关键字break;该代码中显示条件变量grade的值是A;所以当存在break关键字时,程序会直接输出"A is that the score is 90<=score<=100"然后终止。当没有break关键字时,在找到满足条件后,程序依然执行,在判断其他三个条件不满足后,会执行default情况的println输出函数。也就是程序会输出:
"Ais that the score is 90<=score<=100"
"Wrongof the grade .Please re-enter it"
这显然不符合事实。Default中的处理函数就是专门应对所有条件都不满足的错误情况的。所以我们在写代码时,要注意关键字break的运用。