java - 用于打印合数的循环生成器

标签 java for-loop methods

我希望我的 isPrimeNumber 函数返回 null(因此它不会打印 isPrimeNumber 函数中的任何数字),但方法显然不能返回 null。我希望 for 循环掩盖打印的数字和素数函数,并打印不在素数函数中的数字和一个,即合数。这是我的代码的样子:

//prints all composite numbers
public class App {

    public static void main(String[] args) 
    {
       for(int i = 1; i <= 10000; i++)
       {
         if (isPrimeNumber(i))
         {
             return null;

         }else{
             System.out.println(i);
         }
       }
    }


    public static boolean isPrimeNumber(int i) {
        int factors = 0;
        int j = 1;

        while(j <= i)
        {
            if(i % j == 0)
            {
                factors++;
            }
            j++;
        }
        return (factors == 2);
  }


}

main 函数中的 else 语句应该打印 1 到 10000 之间的所有合数。我该如何解决这个问题?

最佳答案

当您找到质数时,不要返回空值。你不能从具有 void 返回类型的方法返回值,但即使这段代码确实通过了编译,当你检测到素数时你也不想离开该方法。

改变条件从

     if (isPrimeNumber(i)) {
         return null;
     } else {
         System.out.println(i);
     }

     if (!isPrimeNumber(i)) {
         System.out.println(i);
     }

关于java - 用于打印合数的循环生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38204864/

相关文章:

java - 我的智囊游戏中的 For 循环

java - 硬币翻转代码错误/问题

java - 尝试导入项目时,IntelliJ IDE 中未检测到框架

Java 7 zip 文件系统提供程序似乎不接受 URI 中的空格

java - 使用 HTTP URL 将文件名从 Java 传递到 PHP

python - 理解for循环的输出

java - 四象限三角形

javascript - 在 DOM 元素上调用自定义方法

java - 如何在其他方法中访问作为类构造函数的一部分创建的数组?

java - 如何在Java中访问WADL文件中的方法?