2014-09-03 37 views
0

這聽起來有點奇怪,所以請耐心等待。Java循環 - 製作一個「V」

我的任務是製作一個簡單的Java類,根據用戶希望的任何高度形成一個「V」,用星號「*」和空格「」組成。例如,如果用戶想要一個高度爲3的「V」,它看起來會打印出類似的東西;

*  * 
* * 
    * 

,其中「V」爲5的高度將是這個樣子:

*   * 
    *  * 
    *  * 
     * * 
     * 

(那一個看上去並不太好,但你明白了吧,它的假設是5 「高」和形狀像一個「V」)

我的問題是,我沒有看到循環內循環內我需要建立這樣的東西。

所有這些簡單的東西,比如詢問用戶他們想要的高度等等,我可以處理,但我不知道這件東西是如何編碼的,打印出一張體面和正確尺寸的「 V「在控制檯中。

任何人都可以幫助我解決這個奇怪的問題嗎?

UPDATE

所以爲了不脫落懶惰,我想圍繞一個小戳,看看我能想出。感謝這一點以及評論部分的一些幫助,我想出了類似的東西。

public static void main(String[] args) { 

    int height = 3; 

    for (int i = 0; i < height; i++) { 

     for (int j = 0; j < 2*(height-1)+1; j++) { 

      if(j == i) { 

       System.out.print("*"); 

      } else { 

       System.out.print(" "); 

      } 

     } 
} 

看起來像是一個很好的開端,它使我獲得了我想要的大小的一半「V」。

我在這裏,還是我在月球上的進展?

我會喜歡在正確的方向戳,我很欣賞你的意見傢伙!

+0

分配?你在錯誤的地方。 – Adi 2014-09-03 13:15:04

+4

這看起來像是一個家庭作業問題,你需要嘗試一些東西,顯示代碼並解釋什麼不起作用,我們無法爲你解決問題@阿迪只要他們顯示應有的態度,問問題就可以了。在這種情況下不會發生 – 2014-09-03 13:15:09

+0

循環從0 ... 2 aka' for(int i = 0; i EpicPandaForce 2014-09-03 13:15:49

回答

-1

下面是它吸引五

看代碼,你會明白爲什麼它的工作原理....

void drowV(int hight){ 
    int rowLen = (hight-1)*2; 

    for(int i=0; i<hight; i++){ 
     int start = i; 
     int end = rowLen-i; 
     for(int j=0;j<=rowLen; j++){ 
      if(j==end){ 
       System.out.println("*"); 
       break; 
      } 
      else if(j==start){ 
       System.out.print("*"); 
      } 
      else{ 
       System.out.print(" "); 
      } 
     } 
    } 
}