Java 输出是如何变为2的?don';我不明白

Java 输出是如何变为2的?don';我不明白,java,switch-statement,coding-style,Java,Switch Statement,Coding Style,不明白答案是如何变成2的?案例语句在没有中断的情况下“失败” public class Ex33 { public static void main(String[] args) { int x = 3, result = 4; switch (x + 3) { case 6: result = 0; case 7: result = 1; default: result += 1;

不明白答案是如何变成2的?

案例
语句在没有中断的情况下“失败”

public class Ex33 {
    public static void main(String[] args) {
        int x = 3, result = 4;
        switch (x + 3) {
            case 6: result = 0;
            case 7: result = 1;
            default: result += 1;
        }
        System.out.println(result);
    }
}

案例7:result=1;// 因为没有
中断
在每种情况下,您的case语句都会失败,无法退出循环。您的所有案例都在应用中,因此导致
result=2

格式正确的代码如下所示:

case 7: result = 1;   // <-- no break, so
default: result += 1; // <-- happens after case 7

如果要停止执行其他case语句,则必须在每个
case
之后放置
break
语句。因此,将结果值取为1的等效代码为:

    int x =3, result=4;

    switch (x+4){
        case 6: 
            result = 0;
            break;

        case 7: 
            result = 1;
            break;

        default: 
            result+=1;
    }

    System.out.println(result);

读取switch语句的一些重要规则,直到遇到break语句为止,匹配大小写标签后的所有语句都按顺序执行,而不管后续大小写标签的表达式如何。
实施一个有效的中断操作

供将来参考:后代码,而不是代码的图像。不要只说“不懂”,说你不懂的。你期望它是什么,为什么?“必须”是一个大胆的说法,因为你是否必须提出中断声明,取决于你的requirements@Stultuske是的,正确。你怎么知道这个代码是正确的?可能代码是正确的,OP只是不理解代码。在switch情况下缺少break语句是常见的错误。这一事实,再加上OP问题的框架,表明这个代码是他想要的。据我们所知,他看到的代码是他不理解的。这是他期望的结果,并不意味着他的“渴望”是相关的,那么我们都可以等待他上线并澄清
int x =3, result=4;
        switch (x+4){
            case 6: result = 0;
            break;
            case 7: result = 1;
            break;
            default: result+=1;
        }
        System.out.println(result);