This question already has answers here:
Switch without break
(6个答案)
Why do we need break after case statements?
(17个答案)
3年前关闭。
在下面的代码中,当我注释中断时,当我编写一个案例(例如“开始”)时,它将打印下面的所有案例输出,意味着将打印所有三行,而当我编写“停止”时,它将打印两个输出“ Mechine” “停止”和“未给出命令”,为什么在编译器搜索大小写时需要给出break语句,如果匹配则打印相关输出。
(6个答案)
Why do we need break after case statements?
(17个答案)
3年前关闭。
在下面的代码中,当我注释中断时,当我编写一个案例(例如“开始”)时,它将打印下面的所有案例输出,意味着将打印所有三行,而当我编写“停止”时,它将打印两个输出“ Mechine” “停止”和“未给出命令”,为什么在编译器搜索大小写时需要给出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");
}
}
}
最佳答案
为什么在编译器搜索时需要给出break语句
情况下,如果匹配,则打印相关输出。
因为这就是它的定义工作方式。除非您明确break
,否则您的程序将遇到其余的case子句
请参见JLS section 14.11并注意:
如果大小写常数之一等于表达式的值,
那么我们说大小写匹配,并且
开关块中匹配的案例标签(如果有)在以下位置执行
顺序。
请注意,它类似于C中的切换行为。从Wikipedia:
源自C的语言,更一般地说,受C影响的语言
Fortran计算出的GOTO,而是功能下降,其中控制
移至相符的案例,然后继续执行(“
通过”)中与下一种情况相关的语句
源文本
关于java - java switch语句机制,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37418936/
10-13 09:41