Почему эта программа отображает только один дефис, даже если для параметра установлено значение 5, например - PullRequest
0 голосов
/ 02 апреля 2012

для этих рекомендаций:

Напишите определение метода dashedLine, с одним параметром, int.

Если параметр отрицателен или равен нулю, метод ничего не делает. В противном случае он выводит полную строку, оканчивающуюся новой строкой, на стандартный вывод, состоящий из тире (дефисов) со значением параметра, определяющим количество тире. Метод ничего не возвращает.

Я написал следующий код, но он печатает только один дефис, когда я запускаю в eclipse, и задаю ему тестовый параметр 5. Я думаю, что вместо этого мне может понадобиться цикл for. Я думаю, что он зацикливается на цикле, возвращая только один дефис.
как я могу "исправить" этот код?

void dashedLine(int x)
    {
        int i=0;
        if(x>0) 
            {
            if(i<=x)
                {
                    i++;
                    System.out.print("-");
                }
                else
                    System.out.print("\n");

            }
    }

Ответы [ 3 ]

2 голосов
/ 02 апреля 2012

Но петли нет.if это не цикл.for while и do while - это три различных цикла в Java.Вы должны иметь:

void dashedLine(int x)
{
    for (int i=0;i<x;i++) {
        System.out.print("-");
    }
    System.out.print("\n");
}
1 голос
/ 02 апреля 2012

Как вы предложили, вы должны использовать цикл FOR здесь:

  for ( i = 0; i < x; i++ )
  {
    System.out.print("-");
  }
  System.out.print("\n");
1 голос
/ 02 апреля 2012

Вам нужно использовать цикл здесь: while, for, do-while вместо условного if.

while(i++ <= x) {
  System.out.print("-");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...