在写java中,出现使用switch case时报错,显示“java:不兼容类型,int 无法转换为bolean”,在拒绝修改为if-else 语句后,根据switch case 的基本原理找出了修改方法:
首先,先让我们来了解一下switch case:
switch 语句由一个判断条件或者是一个变量和多个case语句以及最后的default组成。
switch (变量/判断条件){
case(变量值):
...
break;
case(变量值):
...
break;
...
default:
...
break;
}
switch(变量/判断条件)即为switch后可接一个变量,也可接一个判断条件,与后的case中的变量值相比较,例如:
switch(day){
case "一":
System.out.println("星期一");
break;
case "二":
System.out.println("星期二");
break;
case "三":
System.out.println("星期三");
break;
default:
System.out.println("error");
break;
}
若day的值,与case后接的变量值相等(注意这里的相等是指equals),然后输出对应语句并break。
若switch中为判断条件,由于case后只可接一个变量值而不能写入表达式等
我们用一个例题来说明:
从键盘上读入一个学生成绩,存放在变量score中,根据score的值输出其对应的成绩等级:
switch (score / 10) {
case 10:
System.out.println("满分");
break;
case 9:
System.out.println("优异");
break;
case 8:
System.out.println("优秀");
break;
case 7:
System.out.println("一般");
break;
case 6:
System.out.println("及格");
break;
default:
System.out.println("不及格");
break;
}
而可能有人会问,这类题目用if-else语句不是更方便吗,emmm,我只是想试试这个switch case方法,其次,了解到:
“switch-case语句完全可以与if-else语句互转,但通常来说,switch-case语句执行效率要高。”
所以...
同时,附加提醒:
default在当前switch找不到匹配的case时执行。default并不是必须的。
一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break。