2014-09-03 2 views
0

Это может показаться немного странным вопросом, так что несите меня.Java-петли - создание «V»

Что мне поручено сделать, это сделать простой Java-класс, который формирует «V» на основе любой высоты, которую пожелает пользователь, из звезд «*» и пробелов ».

Например, если пользователь желает «V» с высотой 3, он будет выглядеть как распечатка;

*  * 
* * 
    * 

Если «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

+4

Это похоже на вопрос о домашнем задании, вам нужно попробовать что-то, показать код и объяснить, что не работает, мы не можем решить проблему для вас @Adi. Вполне нормально задавать домашние вопросы, если они показывают должную утонченность, в этом случае не происходит –

+0

Петля идет от 0 ... 2 aka 'for (int i = 0; i EpicPandaForce

ответ

-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(" "); 
      } 
     } 
    } 
} 
Смежные вопросы