2010-10-25 118 views
2

我的住宅大廳裏沒有人知道如何在我們的CS作業上做這個問題。它說:使用單個for循環編寫嵌套循環(通用) - java

的嵌套循環

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

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

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

爲4的寬度和3的高度寫入單個for循環 顯示相同的矩形。請記住,3和4只是 的一個示例,並且您的代碼必須是通用的,並且適用於任何寬度爲 和高度。

我們嘗試了很多東西,但每個都以失敗告終。我們是否錯過了明顯的東西

回答

15

你應該看看遍歷數你需要顯示星號,並顯示一個星號/換行符適當的,你通過迭代(想想有多少星號組成一排 - 我不想!給你答案,但是)

+2

我同意。給HW解答是不好的。只是有點提示:你可以使用%操作符... – miki725 2010-10-25 21:45:17

0

您可以使用多個條件在for循環

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

custom template language我寫這是解決方案:

{set|($height)(3) ($width)(4)} 

{for|i|1 : $i <= ($height*$width) : $i++| 
    * 
    {if| !(($i) % $width)| 
     <br/> 
    } 
} 

我不想在Java中給你答案,但這是一個很簡單的問題,給你的建議是解決它,所以這是我能想到的最好的。

0
int width = 9 ; 
    int height = 3; 
    for (int row = 1, column = 1 ; row <= height && column <= width; column++) { 
     System.out.print("*"); 
     if(column == width) { 
      column = 0; 
      System.out.println(); 
      row ++; 
     } 
    } 
0
for (int row = 0, column = 0; (row < height && column < width); column++) 
{ 
    System.out.print("*"); 
    if (column == (width - 1)) 
    { 
    column = -1; 
    row++; 
    System.out.println(); 
    continue; 
    } 
} 

希望這有助於。

Regards