switch语句注意点
时间: 2023-07-12 08:00:59 浏览: 54
当使用switch语句时,需要注意以下几点:
1. switch语句中的表达式必须是整型或枚举类型。
2. case标签必须是整型常量表达式。
3. 每个case标签后面必须跟一个break语句,否则会发生“穿透”现象,即程序会继续执行下一个case语句,直到遇到break语句或switch语句结束。
4. 如果所有case标签都不匹配,则执行default语句,如果没有default语句,则switch语句不会执行任何操作。
5. case标签可以有多个,但是它们的值必须是不同的,否则会发生冲突。
6. 在switch语句中可以使用任何语句,包括if语句、while循环等。
7. switch语句可以嵌套,但是要注意避免过度嵌套导致代码复杂度过高。
相关问题
switch语句注意事项
在使用switch语句时,需要注意以下几点注意事项:
1. 在每个case语句中都要加上break,以在满足条件的case语句后跳出switch语句,否则会造成switch语句的刺穿,在满足条件的case语句后的每条语句都将执行。
2. 可以在switch语句最后加入default语句,当所有case都不满足条件式时,执行其中内容;但是当default语句在满足条件的case前时,将先执行default语句,若没有对应break,将发生刺穿,后续case对应的语句都将执行。
3. 在使用switch语句时,需要注意字符串的匹配问题。switch对字符串的支持,其实是int类型值的匹配。它的实现原理是通过对case后面的String对象调用hashCode()方法,得到一个int类型的hash值,然后用这个hash值来唯一标识这个case。那么当匹配时,首先调用这个字符串hashCode()函数,获取一个hash值(int类型),用这个hash值来匹配所有case,如果没有匹配成功,说明不存在;如果匹配成功了,接着会调用字符串的String.equals()方法进行匹配。
4. 一般必须在case语句结尾添加break语句。因为一旦通过switch语句确定了入口点,就会顺序执行后面的代码,直到遇到关键字break。否则,会执行满足这个case之后的其他case的语句而不管case是否匹配,直到switch结束或者遇到break为止。如果在switch中省略了break语句,那么匹配的case值后的所有情况(包括default情况)都会被执行。
switch语句注意要点
以下是使用switch语句时需要注意的要点:
1. 如果判断的具体数值不多,而且符合byte、short、int、char、enum【枚举】,String这六种类型,虽然两个语句都可以使用,建议使用switch语句。
2. 在每条case语句中都要加上break,以在switch()中条件满足对应case时,跳出switch语句;否则会造成switch语句的刺穿,在满足条件的case语句后的每条语句都将执行。
以下是一个使用switch语句的例子:
```java
int day = 4;
String dayName;
switch (day) {
case 1:
dayName = "Monday";
break;
case 2:
dayName = "Tuesday";
break;
case 3:
dayName = "Wednesday";
break;
case 4:
dayName = "Thursday";
break;
case 5:
dayName = "Friday";
break;
case 6:
dayName = "Saturday";
break;
case 7:
dayName = "Sunday";
break;
default:
dayName = "Invalid day";
break;
}
System.out.println(dayName); // 输出:Thursday
```