首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Java 計算 1-100 間 7 的倍數陷入死循環?內層 for 缺少遞增導致條件永真

     編輯:程式設計疑難解答

錯誤代碼

for (int i = 1; i < 101; i++) {
    for (; i % 7 == 0; ) { // 無第三運算式
        sum++;
    }
}

原因

當 i=7 時,內層 for(; i%7==0;) 條件成立,執行 sum++,但 i **不變**,再次判斷條件仍成立 → 無限迴圈。

修正

for (int i = 1; i < 101; i++) {
    if (i % 7 == 0) sum++; // 改為 if
}

或保留雙層結構(教學用)

for (int i = 1; i < 101; i++) {
    for (int j = i; j % 7 == 0; j++) { // j 遞增,最終跳出
        sum++;
        break; // 只計一次
    }
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved