Область видимости в Java
Давайте теперь будем смотреть, где видно
переменную, объявленную внутри условия.
Имя, объявленное в фигурных скобках if,
снаружи этих скобок не видно. Возьмем условие,
которое всегда истинно:
if (true) {
}
Переменная объявлена внутри скобок. Снаружи этого имени нет, программа не собирается:
if (true) {
String res = "!";
}
System.out.println(res); // программа не собирается
Если переменную объявить снаружи, она видна и внутри условия, и снаружи:
String res = "";
if (true) {
res = "!";
}
System.out.println(res); // выведет !
В обе ветки можно записать разные значения. Если объявить переменную внутри веток, снаружи ее снова не видно:
int num = 5;
if (num >= 0) {
int res = 1;
} else {
int res = 2;
}
System.out.println(res); // программа не собирается
Объявим переменную снаружи условия:
boolean test = true;
int res = 0;
if (test) {
res = 1; // сработает это
} else {
res = 2;
}
System.out.println(res); // выведет 1
Автор приведенного кода хотел проверить,
достиг ли возраст 18 лет. Код
не запускается. Исправьте ошибку:
int age = 17;
if (age >= 18) {
boolean adult = true;
} else {
boolean adult = false;
}
System.out.println(adult);