Здесь мы видим простой пример.
x присваивается минус n, если n отрицательно.
Если это не так, x присваивается n.
Таким образом, существует два альтернативных блока выражений.
Тот, который выполняется, если условие истинно.
И тот, который выполняется, если условие ложно.
Этот блок записывается после ключевого слова else.
Конечно, в каждой из двух альтернатив, у нас может быть блок выражений вместо одного выражения.
Что теперь, если мы хотим разделить не только два случая, но и больше, например, три случая.
Поскольку условное утверждение является выражением, мы можем поместить его в любую из ветвей.
Например, давайте напишем условное выражение внутри другой ветви.
Новое условие проверяет, равно ли n 0.
Если это так, мы что-то делаем.
Иначе мы делаем что-то еще.
В целом, теперь у нас есть три случая, из которых только один выполняется.
Здесь показан пример с 4 случаями.
Для исследования проблемы else, давайте взглянем на эти два блока кода.
Единственное различие между двумя блоками является идентификация принадлежности else.
И здесь могут быть два вопроса.
Первый, к какому выражению if выражение else принадлежит?
Второй вопрос, это то, каким будет значение после оценки if выражения?
Идентификация фактически не влияет на то, как компилятор будет интерпретировать блоки кодов.
В Java, else выражение соотносится с ближайшим возможным if выражением.
В этом случае, это проверка значения b.
Таким образом, здесь блок кода слева такой же, как код блока справа, с парой вставленных фигурных скобок.
Результат оценки блока кода приведет к установке значения a = 30 в конце выполнения.
Мы можем также использовать комбинацию if-else if.
Пример здесь показывает, как эта комбинация может быть использована для определения уровня знаний в зависимости от оценки.
Обратите внимание, что это будет иметь большое значение, если ключевое слово else остается перед if.
Сравните со случаем, когда else убрано.
В этом случае поток выполнения прерываться не будет.
В то время как if выражение позволяет выбрать из двух возможных путей, switch выражение позволяет более двух путей выполнения.
Вот диаграмма для иллюстрации потока управления switch выражения.
И вот синтаксис switch выражения.
Синтаксис switch выражения начинается с ключевого слова switch.
Выражение switch может иметь тип char, byte, short или int, и String.