2013-02-17 22 views
1

所以我試圖用for循環創建一個由「[]」組成的三角形例子。當執行循環應打印出與2的給定輸入:爲什麼我的程序添加一個新行?

[] 
[][] 

然而,當我輸入2並編譯它增加了一個線箱在尋找這樣的:

[] 
[][] 
[][][] 

有沒有鬼這個機械師還是我錯過了什麼?如果你讀的評論有很多關於你做了什麼錯誤的提示

for(int i=1; i<=width; i++) 
    { 
     r=r+"[]"; 
     System.out.println(r); 
    } 
+7

在調試器中遍歷您的代碼。仔細觀察r變量。 – 2013-02-17 02:02:40

+0

@SkyVar你爲什麼需要內部循環。消除它,它將解決問題 – user1428716 2013-02-17 02:07:16

+1

它增長和增長......並且永遠不會再被設置爲「」「?你的內部循環執行1 + 2次。第二次,在添加[]之前,r開始爲[]。 – Floris 2013-02-17 02:07:24

回答

1

您只需要使用一個循環這一點。

但是你真正需要的是如何做自己的故障排除建議:

  • 喬爾建議您應該使用調試器。如果你還沒有被教過這個,你需要找到一個與你正在使用的IDE相關的教程。

  • ruakh表明添加微量打印到您的代碼在關鍵的地方打印出來的變量的值。這樣的作品也一樣,尤其是在你不能調試器附着在你的程序

  • 我建議你「手執行」程序的案件。拿到一張紙和一支鉛筆,寫下變量的名字和數值的「槽」。現在假設您正在執行與完全相同的語句,在您的紙上寫入/更改變量的值。

當然,你需要用你的大腦來解釋上面會告訴你什麼,建立對實際發生的事情的理解,以及修復它的計劃。

故障排除/調試是你學會做的事情;即自己自己。如果你想成爲一個富有成效的程序員,你需要學習這一點。

另一個好東西關於自己解決問題的做法是,這種做法可以幫助你培養閱讀和理解代碼的能力,並最終提高你的寫作技能。而那個......我的朋友......是你作業的重點!

+1

bingo ..同期 – user1428716 2013-02-17 02:08:30

+3

-1 - OP需要學習如何爲自己調試東西。你不是在幫他喂他的答案。 (很明顯,這是一個學習練習......) – 2013-02-17 02:08:55

+1

@StephenC - 同意。 – user1428716 2013-02-17 02:10:00

5

import java.util.Scanner; 
public class NestedLoops 
{ 
    public static void main(String[] args) 
    { 
     Scanner input = new Scanner(System.in); 

     System.out.print("Enter a Number between 2-9: "); 
     int width=input.nextInt(); 

     String r =""; 
     for(int i=1; i<=width; i++) 
     { 
      for(int j=1; j<=i; j++) 
      { 
       r=r+"[]"; 
       System.out.println(r); 
      } 

     } 


    } 


} 
相關問題