没有break不是都执行么,为啥跟预想的不一样没有break不是都执行么,为啥跟预想的不一样正文长度小于30个字符,请进行修改!

没有break不是都执行么,为啥跟预想的不一样没有break不是都执行么,为啥跟预想的不一样

img

预期是什么样呢,没有break都执行也是遇到匹配的之后,执行这次的case及以后的,之前不匹配的是不会执行的

走进default了呀,default就是其他case都不匹配的时候会进的

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7726832
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:关于break在循环(包括嵌套循环)的作用
  • 除此之外, 这篇博客: 整理了几种循环结构的使用和注意事项,以及在实际应用中应该选择哪一个结构中的 循环中的关键字break和continue 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • break:跳出循环(只要看到它循环就结束,后面的循环就不走了),但是在多层循环时,只能跳出当前的那一层循环。
      一般和if一起用,用于实现在某种特定条件下提前结束循环
    • continue:跳过循环体中剩余语句,而进入下一次循环(是跳过剩余语句,不是跳出循环)
  • 您还可以看一下 Gardener老师的函数的使用课程中的 break的使用小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    根据参考资料可以了解到,break语句的作用是跳出循环或条件语句,如果在某一分支内部没有加上break语句,程序将会继续执行下一个分支,直到遇到break语句或者执行完分支语句。因此,如果在if语句的内部没有加break语句,程序将会执行完if语句内所有分支的语句,而不是只执行符合条件的分支语句。

    举个例子,如果有如下代码:

    public static void main(String[] args){
        int i = 2;
        if(i == 1){
            System.out.println("i is 1");
        }
        if(i == 2){
            System.out.println("i is 2");
        }
        if(i == 3){
            System.out.println("i is 3");
        }
    }
    

    在上面的代码中,i等于2,因此只有第二个if语句的条件成立,但由于每个if语句内部都没有break语句,程序将会执行完所有分支的语句,最终输出:

    i is 2
    

    如果想要只执行符合条件的分支语句,可以在每个分支的末尾添加break语句,比如:

    public static void main(String[] args){
        int i = 2;
        if(i == 1){
            System.out.println("i is 1");
            break;
        }
        if(i == 2){
            System.out.println("i is 2");
            break;
        }
        if(i == 3){
            System.out.println("i is 3");
            break;
        }
    }
    

    上面的代码中,由于第二个if语句的条件成立,而且在第二个if分支末尾添加了break语句,因此只会输出一行:

    i is 2
    

    因此,当程序没有按照预期执行时,可以检查代码中是否有缺少break语句的地方。如果只是在某个分支内部缺少了break语句,可以在该分支的末尾添加break语句,如果整个循环或者条件语句内部都需要添加break语句,可以使用break语句跳出循环或条件语句。如果在某些情况下还需要返回某个结果,可以使用return关键字。