Java 教程中的简单iPrime函数不起作用

Java 教程中的简单iPrime函数不起作用,java,Java,System.out.pritnln不打印以下代码中的任何内容: 我是新手,所以我真的不知道问题出在哪里。这对我正在关注的教程中的那个家伙很有用。我正在使用NetBeans IDE 8.2 public static void main(String[] args) { int count = 0; for (int i = 10; i < 50; i++) { if (isPrime(i)) { count++;

System.out.pritnln不打印以下代码中的任何内容:

我是新手,所以我真的不知道问题出在哪里。这对我正在关注的教程中的那个家伙很有用。我正在使用NetBeans IDE 8.2

 public static void main(String[] args) {
     int count = 0;
     for (int i = 10; i < 50; i++) {
         if (isPrime(i)) {
             count++;
             System.out.println("Number " + i + " is a prime number");
             if (count == 3) {
                 System.out.println("Exiting the loop");
                 break;
             }
         }
     }
 }

 public static boolean isPrime(int n) {  
     if (n == 1) {
         return false;
     }
     for (int i = 2; i <= n / 2; i++) {
         if (n % 1 == 0) {
             return false;
         }
     }
     return true;
 }
您的iPrime函数有一个输入错误。 它现在的构造方式总是返回false

你必须更换

if (n % 1 == 0)


现在它应该可以工作了。

这个函数public static boolean isPrimeint n有问题 在什么条件下:ifn==1这永远是真理

为此,您必须更改为ifn==i:


如果n%1==0,则始终为真。每个整数都可以被1整除…@tkausl add作为答案看起来像是打印错误。应该是n%i==0,就像我说的我是编程新手一样。修好了,谢谢,这是因为isPrime实际上不是prime
if (n % i == 0)
public class Try0 {

    /**
     * @param args the command line arguments
     */
   public static void main(String[] args) {
    int count = 0;
            for (int i = 10; i < 50; i++) {
                if (isPrime(i)) {
                    count++;
                    System.out.println("Number " + i + " is a prime number");
                    if (count == 3) {
                        System.out.println("Exiting the loop");
                        break;
                    }
                }
            }
        }
     public static boolean isPrime(int n) {  

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

}
Number 11 is a prime number
Number 13 is a prime number
Number 17 is a prime number
Exiting the loop