2016-02-21 177 views
0

我正在爲我的一個類做些功課,並且遇到了一個問題,我遇到了一些問題。我無法弄清楚我該怎麼做。如果有人能指出我正確的方向,我會如何去做,那會很棒。這是問題。將嵌套for循環減少爲單個for循環

的嵌套循環

for (int i = 1; i <= height; i++) 
{ 
    for (int j = 1; j <= width; j++) { System.out.print("*"); } 
     System.out.println(); 
} 

顯示給定寬度和高度的矩形,如

 
**** 
**** 
**** 

寫入單個for循環顯示相同的矩形。

+0

應用公式。用於循環生成N個矩形。並使用一些邏輯來計算高度和寬度。 Logica可以是任何算術或隨機的。希望你會自己做足功課,接受這個建議。 :) –

回答

1
for(int i=1; i<=height*width; i++) { 
    System.out.print("*"); 
    if(i%width==0){ 
     System.out.println(); 
    } 
} 
+1

*確切*我要發佈的內容,減去一半的空白。 – shmosel

0

你可以在兩個沒有嵌套的循環中拆分循環。第一次看定義了打印每行的字符串:

StringBuilder sb = new StringBuilder(); 
for (int i = 0; i < width; i++) { 
    sb.append("*"); 
} 
String line = sb.toString(); 

現在你可以使用line所有行:

for (int i = 0; i < height; i++) { 
    System.out.println(line); 
} 

請還沒有這個迭代索引0開始和最後一個索引與widthheight不同,這在這裏沒有什麼不同,但這是一個好習慣,因爲Java中的幾乎所有內容都使用基於0的索引。

儘管這個解決方案並沒有像@ KenBekov's那樣真正使用單一循環,但我發現這樣做更具可讀性。