引言
- 在记录自己自学java过程中,首先声明关于学习顺序可能并不很科学,即使我也是通过一些公开的资料来进行学习,但不会是完全无基础的教学,更像是比对着python(本人平时编程使用的是python)比较实现方法的异同学习,请酌情参考学习,有理解不对的地方欢迎指正。
java-流程控制 3
switch多重选择(python中是没有该选择的)
标准写法
- 假如多个case语句要执行的代码块或者说功能是一致的,也可以简写如下所示
public class Main {
public static void main(String[] args) {
int option = 2;
switch (option) {
case 1:
System.out.println("Selected 1");
break;
case 2:
case 3:
System.out.println("Selected 2, 3");
break;
default:
System.out.println("Not selected");
break;
}
}
}
- 上篇说过如果不写break,会出现"穿透",也就是从匹配到case 2开始,后续语句将全部执行,直到遇到break语句。因此,任何时候都不要忘记写break,万一哪天在死循环里没写break那可能就是"事故"喽
-
关于执行顺序,上面说过各个情况互斥这与if-else是一样的,但是if-else是有执行顺序的,而switch中case的顺序不影响程序逻辑,但是为了便于分析代码最好还是符合规律较好
-
除了上述数据类型,也可以匹配字符串,这时候
=就是表示"内容相同"
public class Main {
public static void main(String[] args) {
String fruit = "apple";
switch (fruit) {
case "apple":
System.out.println("Selected apple");
break;
case "pear":
System.out.println("Selected pear");
break;
case "mango":
System.out.println("Selected mango");
break;
default:
System.out.println("No fruit selected");
break;
}
}
}
- 上面说到不写deault和break会有意想不到的后果,那么用pycharm写python代码的时候格式错误都会有提醒,那么同样IDEA有提示吗?可以设置编译检查来进行warning提示防止出现这种情况
- 选择Preferences -> Editor -> Inspections -> Java -> Control flow issues,将以下检查标记为Warning:
- Fallthrough in 'switch' statement
- 'switch' statement without 'default' branch
- 最好还是自己记住,毕竟不是什么时候都可以用到这些好用的开发工具的,比如在Linux跳板机跳转的服务器里面用vim改代码(此时专业设备就不是很好用了,我现在就只能用vim修改代码)