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

Java 循環代碼片段錯誤分析:for 循環條件缺失導致無法編譯

     編輯:程式設計綜合問答

問題代碼


for(i=1; i s = i*i*i;  // 語法錯誤:缺少條件表達式與增量表達式
while(s>0) { ... }

錯誤原因

for 語法結構為 for(初始化; 條件; 增量) 語句。代碼中:

  • 條件部分寫成了 i s = i*i*i(非布爾表達式)。
  • 缺少分號分隔三個部分。
  • 循環體未用大括號包裹,導致 while 被視為循環體的單條語句,邏輯混亂。

修正版:計算 1-999 中符合「各位數字立方和等於自身」的數(水仙花數)


public static void main(String[] args) {
    int count = 0;
    for (int i = 1; i < 1000; i++) {      // 正確的 for 結構
        int sum = 0;
        int temp = i;
        while (temp > 0) {
            int digit = temp % 10;
            sum += digit * digit * digit;
            temp /= 10;
        }
        if (sum == i) {
            count++;
            System.out.println(i);
        }
    }
    System.out.println("總數: " + count);
}

輸出結果

1
153
370
371
407
總數: 5

避坑指南

  1. for 循環三部分**必須用分號分隔**,條件必須是布爾表達式。
  2. 循環體超過一句**必須加大括號**。
  3. 避免在循環條件中進行賦值或複雜運算,易讀性差且易出錯。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved