繁体   English   中英

System.out.println 未打印 [暂停]

[英]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)

在这里,如果istPrimzahlindex < (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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM