请帮我理解这个程序

时间:2015-07-09 10:30:31

标签: java

我很难理解在这种情况下for循环的目的是什么。它从2开始并重复直到我们输入的数字。然后它检查a / b的提醒是否为0,如果是,则“primeNumber == false”。之后它存在if句子并检查其他句子。这就是我理解这个程序的方式,如果我是对的,为什么程序显示2是一个素数,如果2/2 = 1,因此提醒= 0。 谢谢

package prime;
import java.util.Scanner;

public class primetime {
  public static void main (String [] agrs){
    Scanner input = new Scanner (System.in);
    System.out.print("Enter a number: ");
    int a = input.nextInt();
    boolean primeNumber = true;
    for ( int b = 2; b < a; b++){
        int z = a%b;
        if (z == 0){
            primeNumber = false;
            break;
        }
    }
    if (primeNumber == true){
        System.out.println("PrimZahl");
    }
    else{
        System.out.println("keine PrimZahl");
    }

  }
}

1 个答案:

答案 0 :(得分:3)

  

为什么程序显示2是一个素数,如果2/2 = 1,因此提醒= 0

如果a==2,则永远不会输入循环,因为b < a永远不会为真(因为b初始化为2而2 < 2为false)。因此,primeNumber仍然是true,因为它应该是,因为2是素数。