2014-01-15 30 views
0

好吧,我一直在處理一個小例子,它涉及到在java中創建一個13x13個人「q」的正方形。我知道我需要兩個循環才能創建一個列和一個行,但我在創建列時遇到問題。使用字符串創建一個具有n長度,n高度的正方形使用字符串

public static void main(String[] args) { 
    // TODO Auto-generated method stub 
    String q = "q"; 

    for(int i = 0; i<26; i++){ 
     for(int x = 0; x<13; x++){ 
      System.out.print(q); 
      x++; 
     } 
     i++; 
     System.out.println(); 
    } 

} 
+1

如果在每次迭代之後遞增它們,爲什麼不使用'for'循環呢?另外,你有什麼「問題」? – OnlyThenDidIReckonMyCurse

+0

循環與印刷無關。你會得到相同的輸出,如果你寫'while(i <13 * 13){System.out.print(q);我++; }'。在內循環之後你缺少'System.out.println()'。 – Maroun

+1

@ᴍarounᴍaroun和'if(i%13 == 0)System.out.println();'在該循環中添加,然後我們用單個循環解決問題!或者,%13 == 12可能是最好的,放在其他打印後 – Cruncher

回答

1

只需在外環循環中使用System.out.println()即可。

while(i<13){ 
    while(x<13){ 
     System.out.print(q); 
     x++; 
    } 
    i++; 
    System.out.println(); 
} 

正如評論中提到的,你最好使用for這個循環。

+0

我改進了我的代碼,for循環確實改變了它。但是,它將新行作爲循環的一部分,有效地提供了一半所需的qs。除了必須將外循環數乘以2以外,還有更有效的方法嗎?那就是說要保持我<13而不是我<26? – Sythe

+0

發表你的新代碼,因爲你剛纔所說的沒有太大意義:s –

+0

對,對不起。將原始帖子編輯爲當前代碼。 – Sythe

1

之前(或之後,它剛剛被成爲內而結束括號,外而結束括號之間)的i++放於一個System.out.println();

這將插入一行每行後都會打破。

相關問題