2015-05-12 4 views
-2

В Java я смотрел на этот код и заметил, что значение boolean присваивается значению true внутри оператора if. Я думал, что оператор if будет оценивать инструкцию и не позволять программисту устанавливать значение. Какова цель этого? "Take out for dinner" никогда не будет достигнуто, правильно?Назначить логическое значение внутри и выражение «if» в Java?

public class Dinner { 
    public static void main (String[] args) 
    { 
    boolean isKeeperFish = false; 
    if (isKeeperFish = true) { 
     System.out.println("Fish for dinner"); 
    } else { 
     System.out.println("Take out for dinner"); 
    } 
    } 
} 
+1

Это правильно. В чем проблема с кодом? – CrApHeR

+0

@CrApHeR Мне просто интересно, почему у этого было бы заявление «else»? –

+0

Это не обязательно, и некоторые компиляторы покажут предупреждение во время компиляции, сообщая вам, что 'else' никогда не будет достигнуто. Это зависит от каждого компилятора. – CrApHeR

ответ

0

Вы тест на равенство с использованием двойного знака равенства:

if(isKeeperFish == true) { 
} 

Вы можете использовать присваивание внутри если-положения для чего-то вроде этого:

int a = 7; 
int b; 
if((b = a + 5) == 12) { 
    System.out.println(b); // Will print 12; 
} 

Хотя это, как правило, не рекомендуется, так как это выглядит немного беспорядочно, и назначение легко пропустить.

Смежные вопросы