В обоих приведенных ниже случаях мне не нужно имя вне условного блока. Какой из этих подходов лучше и почему?

Подход 1

String name = null
if(){
name = "hello";
} else {
name = "carlo"
}

Подход 2

  if(){
    String name = "hello";
    } else {
    String name = "carlo"
    }
-3
Punter Vicky 28 Ноя 2018 в 00:29

1 ответ

Лучший ответ

В более вероятном случае, если вы захотите использовать значение имени, которое вы установили после завершения блока else, первый подход лучше, потому что второй не будет компилироваться; переменные name не будут видны за пределами блока if / else.

В менее вероятном случае, если вы собираетесь рассматривать их как отдельные переменные и обрабатывать их отдельно, подход 2 лучше, поскольку он сделает область действия каждой переменной более локальной и, таким образом, сделает ваш код более модульным.

ОБНОВЛЕНИЕ: изменив вопрос, понятно, что вам нужна вторая («менее вероятная») ситуация. Итак, подход 2 в вашем случае лучше.

3
David P. Caldwell 27 Ноя 2018 в 21:32