MUH*_*AIN 0 java switch-statement
在下面的代码中,当我评论休息时,当我写一个案例(说"开始")它将打印下面输出的所有案例,意味着所有三行都打印,当我写"停止"它打印两个输出"机械停止"和"没有给出命令",为什么我需要在编译器搜索案例时给出break语句,如果匹配则打印相关输出.
import java.util.Scanner;
public class App{
public static void main(String args[]){
Scanner input = new Scanner(System.in);
String text = input.nextLine();
switch(text){
case "start":
System.out.println("Mechine Started");
break;
case "stop":
System.out.println("Mechine stopped");
break;
default:
System.out.println("No command given");
}
}
}
Run Code Online (Sandbox Code Playgroud)
为什么我需要在编译器搜索案例时给出break语句,如果匹配则打印相关输出.
因为它是如何定义的.除非您明确说明,否则您的程序将覆盖其余的案例条款break
参见JLS第14.11节并注意:
如果其中一个case常量等于表达式的值,那么我们说case匹配,并且switch块中匹配case标签之后的所有语句(如果有的话)按顺序执行.
它类似于C中的开关行为,注意.来自维基百科:
从C派生的语言,更常见的是受Fortran的计算GOTO影响的语言,而不是特征性的,其中控制移动到匹配的情况,然后执行继续("落后")到与源文本中的下一个案例相关联的语句
| 归档时间: |
|
| 查看次数: |
318 次 |
| 最近记录: |