我正在執行代碼以顯示從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
),那麼它也顯示相同的輸出。
不是聲明,但初始化是問題... –