может любой, пожалуйста, объясните мне, почему следующие печатает код false
Почему следующий код печатает false?
public class Test {
public static void main(String[] args) {
System.out.println(true?false:true == true?false:true);
}
}
может любой, пожалуйста, объясните мне, почему следующие печатает код false
Почему следующий код печатает false?
public class Test {
public static void main(String[] args) {
System.out.println(true?false:true == true?false:true);
}
}
true?false:true == true?false:true
оценивается слева направо, поэтому он эквивалентен true?false:(true == true?false:true)
. Поскольку true
- true
, первое тернарное выражение возвращает false
, что является печатным выходом.
Поскольку первое условие true
, он будет печатать false
.
редактировать:
То есть с трехзначным оператором, в основном это упрощается, если.
if (true) {
System.out.println(false);
} else {
if (true == true) {
System.out.println(false);
} else {
System.out.println(false);
}
System.out.println(true);
}
с помощью тройной оператор, это может быть упрощена, как
System.out.println(true?false:true == true?false:true);
поэтому пост выше использует ту же самую операцию, используя истинным или ложным.
это действительно «истина» (ложь) :(true == true? False: true) 'Я думаю, что вы хотели' (true? False: true) == (true? False: true) ' – Titus
что вы пытаясь разобраться в этом вопросе? – Blip