[英]System.out.println is not printing [on hold]
我正在尝试编写代码来测试我的数字n
是否是质数,当其他一切正常时,我的System.out.println
不会出现在我的控制台上。
我对编程还是很陌生,所以我真的不知道如何解决这个问题。
public boolean istPrim(int n) {
boolean istPrimzahl = false;
int index = 2;
while (index < (n - 1) && istPrimzahl) {
if (n % index == 0) {
istPrimzahl = true;
System.out.println("Die Zahl " + n + "ist eine Primzahl");
} else {
System.out.println("Die Zahl " + n + "ist keine Primzahl");
istPrimzahl = false;
index++;
}
}
return istPrimzahl;
}
好吧,如果 boolean 变量为真或假,我希望控制台会说“Die Zahl n ist eine Primzahl”或“keine Primzahl”。 我正在使用 BlueJ 顺便说一句。
请注意 function 中的第一行, istPrimzahl
设置为 false,并且 while 循环中的条件在执行迭代之前检查index < (n-1)
和istPrimzahl
是否为真。 显然, istPrimzahl
不正确,因此没有运行迭代,也没有打印任何内容。
您可以改用do while循环,以便迭代始终执行一次,更改istPrimzahl
的初始化,或更改 while 循环的条件。
使用do while
的前:
do {
if (n % index == 0) {
istPrimzahl = true;
System.out.println("Die Zahl " + n + "ist eine Primzahl");
} else {
System.out.println("Die Zahl " + n + "ist keine Primzahl");
istPrimzahl = false;
index++;
}
} while (index < (n - 1) && istPrimzahl)
在这里,如果istPrimzahl
和index < (n - 1)
在上一次迭代中为真,则循环将始终运行第一次迭代并继续
您的 while 取决于 istPrimzahl 变量是否为真,在代码中它设置为假。 要解决这个问题,只需从 false 更改为 true。
public boolean istPrim(int n) {
boolean istPrimzahl = true;
int index = 2;
while (index < (n - 1) && istPrimzahl) {
if (n % index == 0) {
istPrimzahl = true;
System.out.println("Die Zahl " + n + "ist eine Primzahl");
} else {
System.out.println("Die Zahl " + n + "ist keine Primzahl");
istPrimzahl = false;
index++;
}
}
return istPrimzahl;
}
在 while 循环中“istPrimzahl”为“false”,任何带有“false”的“&&”都将始终为 false,因此程序永远不会进入 while 循环
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.