大佬帮新手看看为什么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++;
}
}
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" 的问题。
相关推荐