が表示され、ユーザーがゼロを入力するまで数字が素数であるかどうかをテストできます。しかし、約6つの数値をテストした後、それは数字が非素数の素数でもあり、素数の素数ではない数字を出力するように、間違ったメッセージを出力します。ユーザーがゼロを入力するまで番号をテストできる素数プログラム。ただし、6つの数字をテストした後、間違ったメッセージ
package com.selfexercise.exercise;
/**
* Created by One on 2/15/2017.
*/
import java.util.Scanner;
public class PrimeNumbers {
public static void main(String[] args) {
int n;
boolean flag=true;
Scanner in = new Scanner(System.in);
for(;;) {
System.out.print("\nPlease enter a number : ");
n = in.nextInt();
for (int i = 2; i <= n/2; i++) {
if (n % i == 0) {
flag = false;
break;
}
}
if (flag) {
System.out.println(n + " is a prime number");
} else {
System.out.println(n + " is not a prime number");
}
if(n==0)
break;
}
}
}
あなたの 'for(;;)'ループの内側(そして内側の 'for'ループの前)に' flag = true'が必要なので、入力された新しい数字ごとにフラグが真に始まります。 – khelwood
ああ、私はそれを自分で解決しました。問題は永遠のループの外側にflag = trueを置くことでした。 foreverループの開始中括弧の直後にforeverループの中にflag = trueを入れる必要があります。 – eyajosh
ええ、私は自分のコードを読んでいることを証明するのによくなっていると思います。とにかく、迅速な対応に感謝します。おかげです! – eyajosh