2013-05-10 281 views
-2

我對我正在做的家庭作業有點困惑。我試着寫出7套123.除了套數是偶數之外,我不想寫123但只是單詞甚至沒有數字,然後繼續下一組。
我正在使用while循環來跟蹤計數集和for循環來進行計數123.但問題是,隨着程序的編寫,它甚至會連續打印。
我試着把if條件放在for循環中,但是隻能連續打印(123甚至)永遠。
我錯誤地應用了if條件嗎?我錯誤地申請條件?for循環裏面while循環使用條件如果條件

import acm.program.*; 
public class TestProgram extends ConsoleProgram 
{ 

    public void run() 
    { 
     int i = 1; 
     while (i <= 7) 
     { 
      if (i % 2 == 0) 
      { 
       println("even"); 
      } 
      else 
      { 
       for (int j = 1; j <= 3; j++) 
       { 
        println(j); 
       } 
      } 
     } 
    } 

} 
+2

您需要修復縮進。這應該讓事情更清楚。 – Thilo 2013-05-10 00:25:56

+0

在這裏發佈代碼以確保格式良好時總是一個好主意。你的目標是讓某人閱讀並理解你的代碼,然後幫助你。如果格式與您的格式不符,您可能會遇到前兩點的問題,這可能會妨礙您獲得第三點,即您所需要的幫助。我們非常讚賞你在這方面的努力。 – 2013-05-10 00:26:53

+0

你需要在那裏有一個'i ++'。我建議爲'i'使用for循環,而不是while。 – Thilo 2013-05-10 00:27:10

回答

3

你根本沒有遞增我,所以它永遠不會終止。您的發言後,添加類似

i++; 
+0

+1。我建議爲我也使用for循環,而不是while。 – Thilo 2013-05-10 00:27:33

+0

@jongusmoe我試圖在while循環級別添加i ++,但沒有修復它。該程序甚至可以打印1甚至2甚至3甚至1甚至2甚至3。 – 2013-05-10 00:35:18

1

什麼你寫是一個無限循環,因爲i將始終小於或等於7,它初始化爲1不管你做什麼去改變它。

+0

如果我的程序根本不對我想要做的錯誤?我試着把i ++放在while循環的層次上,但是這個程序仍然沒有打印出我想要打印的東西。 – 2013-05-10 00:41:12

+1

你可以在while循環塊的末尾放置'i ++',這樣'i'在整個第一次迭代中就是'1',在整個第二次迭代中''是'2'等等。 – rgettman 2013-05-10 00:45:13