Почему это не печатает значение в Java? - PullRequest
0 голосов
/ 05 июня 2018
class Some {
  public static void main(String args[]) {
    for(int one = 77; one ==  0; --one) {
      if(one == 77) {
        System.out.println("Original integer:" + one);
      }
      else {
        System.out.println("Integer: " + one);
      }
    }
  }
}

Я не понимаю, почему код не может печатать значения.Буду признателен, если кто-нибудь скажет мне, как я могу заставить цикл работать успешно.Помощь приветствуется, так как это моя первая попытка Java.Благодаря.

Ответы [ 5 ]

0 голосов
/ 05 июня 2018

Измените код так, чтобы программа хотя бы раз входила в цикл for .Поскольку вы инициализировали i = 77, при проверке первого условия == 0 оно считается ложным.Таким образом, программа не будет входить в цикл for и, следовательно, ничего не будет напечатано.

class Some 
{
    public static void main(String args[]) 
    {
        for(int one = 77; one>=0; --one) 
        {
            if(one == 77) 
            {
                System.out.println("Original integer:" + one);
            }
            else 
            {
                System.out.println("Integer: " + one);
            }
        }
    }
}
0 голосов
/ 05 июня 2018

https://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html

Указывает, что оператор for разбит на 3 части.

for (initialization; termination; increment) {
    statement(s)
}

инициализация, завершение и приращение.

Ваш цикл forимеет

инициализацию как int one = 77;

, завершение как one == 0;

и приращение как --one

дополнительно заявляет

"Когда выражение завершения оценивается как ложное, цикл завершается."

это означает, что one начнется с 77 и уменьшит значение каждого цикла, , тогда как one равно нулю.

поэтому просто измените свое завершение на true, пока оно не достигнет нуля, или true, пока оно не достигнет нуля в зависимости от поведения, которое вам нужно.

0 голосов
/ 05 июня 2018

Условие проверки петли для является ложным для начала (one == 0).Вы должны были указать one >= 0 или one > 0 как условие проверки цикла.

0 голосов
/ 05 июня 2018

one == 0 никогда не соответствует действительности, поэтому цикл не будет выполняться

Вы хотите сделать one > 0

в цикле как:

for(int one = 77; one >  0; --one) {
0 голосов
/ 05 июня 2018

Ваш цикл не запускается, потому что one не равен 0 в начале.Цикл выполняется до тех пор, пока условие выполняется.

Вместо этого ваше условие должно быть one >= 0, или если вы не хотите, чтобы цикл выполнялся один == 0, сделайте его one > 0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...