我大约一个月前开始学习Java,今天我看到了我无法解决的问题。

问题是:


  编写一个名为isPrime的方法,该方法将整数作为参数并返回true
  如果参数是素数,否则为false。在一个完整的程序中演示该方法。


第二部分说:


  使用您在上一个程序中编写的isPrime方法
  将所有从1100的质数的列表存储在文件中。


这是我的代码,不起作用:

import java.io.*;

public class PrimeNumbers {

    public static void main (String args[]) throws IOException {

        PrintWriter outputFile = new PrintWriter("PrimeNumber.txt");

        int j = 0;

        for (int i = 0; i < 100; i++) {
            isPrime(i);
            outputFile.println("Prime nums are:" + i);
        }
    }
    public static boolean isPrime (int j) {

        int i;
        for (j = 2; j < i; j++) {
            if (i % j == 0) {
                return false;
            }
            if (i == j) {
                return true;
            }
        }
    }
}

最佳答案

true-isPrime中返回if (i == j)的条件永远无法满足,因为它位于条件为j < i的循环内。相反,只需在循环后返回true。如果循环结束而没有返回false,则可以确定输入数字是素数。

您使用isPrime的代码未检查此方法返回的值。您必须检查它以确定是否将数字写入输出文件。

10-08 14:38