Вопрос по java, if-statement – Мой оператор if ВСЕГДА возвращает истину, независимо от того, что

1

Это просто не имеет смысла для меня вообще.

Это мой код:

boolean that = false;
        if (that == true);
        {
            System.out.println("That is " + that);
        }

И все же он напечатает строку, хотя мой вывод

That is false

Я делаю это в java, и я использую Eclipse galileo, поэтому каждый раз, когда я компилирую / запускаю свою программу, она сохраняет ее, поэтому компилятор должен получать обновленную версию моей программы. Что происходит?

если (это == правда); :) Удалить ; один Subhrajyoti Majumder

Ваш Ответ

5   ответов
2

if (that == true);
              // ^ The extra colon you dont need
Я тоже тебя люблю, да, ты прав user1364363
8

; в концеif заявление.

Кстати, я всегда пишу следующее, если использую скобки и использую средство форматирования кода в среде IDE.

    if (that == true) {
        System.out.println("That is " + that);
    }

Это означает, что если вы ошиблись; или же{ это может быть более очевидным.

Я тоже тебя люблю, да, ты прав user1364363
Это легко сделать. ;)
3

 if (that == true);

Удалить эту точку с запятой! Это вызывает код ничего не делать после проверки условного(that == true) - технически это "пустое утверждение"; - то есть у нас может быть такая петля:

    for (int i = 0; ; i++){
      System.out.println("Thanks" );
    }

И это будет продолжаться вечно!

Я тоже тебя люблю, да, ты прав user1364363
@ user1364363 - :) Спасибо,
3

boolean that = false;
     if (that == true)
     {
         System.out.println("That is " + that);
     }

в противном случае печать всегда выполняется.

Я люблю тебя, не могу поверить, что я этого не осознал ... user1364363
2

    boolean that = false;
    if (that)
    {
        System.out.println("That is " + that);
    }

Обратите внимание на дополнительную точку с запятой послеif в вашем коде? Вот почему.

Логический тест закрывается точкой с запятой, затем всегда выполняется следующий блок.

Если вы удалите точку с запятой, она будет соответствовать вашей интуиции.

Ага. Вы правы. user1364363

Похожие вопросы