1から100の素数を表示するコードを実行しています。以下のコードを実行すると、すべての数値が表示されません。コードはこちら誤った宣言のために出力が正しくありませんか?
public class PrimeNumberSeries {
public static void main(String[] args) {
boolean flag = true;
for(int i=1; i <= 100; i++){
for(int j=2; j<= i-1; j++){
if(i%j==0){
flag = false;
break;
}
}
if(flag == true){
System.out.println("The number is prime number. Value = "+ i);
}
}
}
}
私はフラグ変数の宣言について混乱しています。最初のforループ内に変数を宣言すると、正しい出力が表示されます。つまり、
for(int i=1; i <= 100; i++){
boolean flag = true;
for(int j=2; j<= i-1; j++){
その理由は何ですか? 変数がメインメソッドの上にクラス変数(static boolean flag
)として宣言されている場合、同じ出力も表示されます。
宣言ではありませんが、初期化が問題です... –