#java #if-statement #boolean
#java #if-оператор #логическое значение #логическое
Вопрос:
Я думал, что значение по умолчанию для boolean равно false ? Почему вместо этого он печатает истинное утверждение? Мой результат — до свидания
public class Test {
public static void main (String [] args) {
if(false)
System.out.print("hello");
else System.out.print("goodbye");
}
}
Комментарии:
1. Это не имеет ничего общего со значением по умолчанию логической переменной.
else
Ветвь выполняется, если выражение внутри()
вычисляетсяfalse
, что оно и делает в вашем коде. Что вы ожидали от этого вывода? И можете ли вы объяснить, почему вы ожидали, что это выведет это?2. Какая vale по умолчанию? Какое
true
утверждение? Что происходит? Чего вы ожидали?
Ответ №1:
Ваш код не использует значение по умолчанию boolean value . Вы всегда печатаете System.out.print("goodbye");
, потому что этот раздел имеет значение true . Для достижения этой цели используйте следующий код
public class Test {
static boolean defaultValue;
public static void main(String[] args) {
System.out.println("Default value is " defaultValue);
if(defaultValue)
System.out.println("hello");
else
System.out.println("goodbye");
}
}
Ответ №2:
То, что sweeper сказал вам в комментарии, верно. Кажется, у вас неправильное впечатление о синтаксисе, я думаю. Возьмите следующий фрагмент кода, который вы привели в качестве примера.
if (false) {
System.out.print("hello");
}
Код внутри блока if никогда не будет выполняться, потому что выражение false
всегда будет принимать логическое значение false . Вы просите Java выполнить следующее: «эй, запустите этот код, если то, что я помещаю в скобки, оценивается как true, но то, что вы помещаете в скобки, всегда будет оцениваться как false. Вот почему java всегда будет запускать код внутри блока else в вашем примере.
Я надеюсь, что это немного прояснит ситуацию.