大佬帮新手看看为什么judge定义在外面

#Java学习# judge定义在外面只会输出一个质数+sb,也不会后面一直输出sb,想知道他为什么输出错误而且只输出一个
boolean judge=true;//定义在这里出错
        int count=0;
        for (int e=i; e< j; e++) {
            //boolean judge=true;//boolean judge=true;要在循环里
            for (int number = 2; number < e; number++) {
                if(e%number==0){
                    judge=false;
                    break;
                }
            }
            if(judge){
                System.out.print(e+"sb");
                count++;
            }
        }
全部评论
你的代码似乎是在找出在 `i` 和 `j` 之间的质数,并输出它们后跟着 "sb"。你遇到的问题与 `boolean judge = true;` 的放置有关。 `boolean judge = true;` 语句应该放在外部的 `for` 循环内。否则,在外部循环的第一次迭代后,`judge` 变量保持为 `true`,并且随后的迭代不会将其重置为 `true`,导致错误的结果。 以下是修正后的代码: ```java int count = 0; for (int e = i; e < j; e++) { boolean judge = true; // 移动到循环内,为每次迭代重置 for (int number = 2; number < e; number++) { if (e % number == 0) { judge = false; break; } } if (judge) { System.out.print(e + "sb"); count++; } } ``` 通过将 `boolean judge = true;` 移动到外部循环内,它将为每个数字 `e` 重置 `judge` 变量,使内部循环能够正确确定 `e` 是否为质数。这应该修复仅打印一个 "sb" 的问题。
点赞 回复
分享
发布于 01-06 14:37 浙江

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务