Оператор Switch в Java

Оператор switch в Java дает вам возможность проверить диапазон значений для переменных. Его можно использовать вместо длинных, сложных конструкций if… else if. Рассмотрим switch на примерах.

Итак, другой способ управления потоком программы - это оператор switch в Java (switch – с англ. означает переключатель).

Как уже говорилось, оператор switch дает вам возможность проверить диапазон значений. Идеальный способ заменить if ... else if, если таковых в вашем проекте много, и они сложны для восприятия.

Структура оператора switch такова:

switch (variable_to_test) {
    case value:
        code_here;
        break;
    case value:
        code_here;
        break;          
    default:
        values_not_caught_above;
}

Итак, вы начинаете со слова switch, после которого следует пара круглых скобок. Переменная, которую вы хотите проверить, находится в круглых скобках switch. Затем идут фигурные скобки. В них находятся все остальные части оператора switch.

Для каждого значения, которое вы хотите проверить, вам нужно слово case (случай с англ.). После пишете само значение, которое хотите проверить:

case value:

После следует двоеточие. Затем вы помещаете код, который вы хотите выполнить, если значение совпадет.

Ключевое слово break (обрыв с англ.) необходимо для выхода из каждого case оператора switch.

Значение default (по умолчанию с англ.) в конце не обязательное. Оно может быть включено, если есть другие значения, которые могут храниться в вашей переменной, но которые вы не проверяли в своих case в switch.

Если все это сбивает с толку, попробуйте следующий код.

Вы можете начать новый проект или просто закомментировать код, который у вас есть. Быстрый способ закомментировать код в NetBeans – вверху с панели инструментов. Сначала выделите код, который вы хотите закомментировать. Затем нажмите значок комментария:

Комментирование NetBeans

Если у вас нет этой панели инструментов, тогда сверху нажмите View, и выберите из выпадающего списка Show Editor Toolbar:

Комментирование NetBeans toolbar

Итак, код:

public static void main(String[] args) {
        
     int user = 21;
        
     switch (user) {
         case 18:
             System.out.println("Вам 18 лет");
              break;
         case 19:
             System.out.println("Вам 19 лет");
             break;
         case 20:
             System.out.println("Вам 20 лет");
             break;
         default:
             System.out.println("Вам не 18, 19 или 20 лет");
      }       
              
}

Первое, что делает код, это устанавливает значение для проверки. Опять же, мы создали переменную int и назвали ее user, установили для нее значение 18.

Оператор switch проверит нашу переменную и смотрит, что в ней.

Затем он будет проходить через каждое из case по очереди. Когда он находит тот, который соответствует, он останавливается и выполняет код для этого случая.

Затем происходит выход из оператора switch.

Запустите эту программу. Введите различные значения для переменной user и посмотрите, что произойдет.

К сожалению, мы не можем проверить диапазон значений, только одно. Таким образом мы не можем сделать так:

case (user <= 18):

Но мы можем сделать так:

case 1: case 2: case 3: case 4:

Вышеприведенная строка проверяет диапазон значений от 1 до 4. Но вы должны прописать каждое значение. (Обратите внимание, где все case и двоеточия.)

Чтобы закончить этот раздел про условные операторы, попробуйте пройти эти упражнения.

Упражнение C

Напишите программу, которая принимает пользовательский ввод с консоли. Программа должна принять число, а затем пройти тестирование для следующих возрастных диапазонов: от 0 до 10, от 11 до 20, от 21 до 30, 31 год и старше. Отобразите сообщение в окне Вывод в следующем формате:

age + " это между 21 и 30 годами"

То есть, если пользователь вводит свой возраст 27 лет, окно вывода должно выглядеть так:

Результат упражнения C

Если пользователю 30 или более лет, вы можете просто отобразить следующее сообщение:

"Вам более 30 лет" 

Ответ на упражнение C

Помощь для этого упражнения

Чтобы получить от пользователя значения String, вы должны сделать это:

String age = user_input.next();

Но метод next () используется для строк. Возраст, который вы получаете от пользователя, должен быть целым числом, поэтому вы не можете использовать next (). Однако есть аналогичный метод, который вы можете использовать: nextInt ().

Используйте оператор switch.

Упражнение D

Если вы хотите проверить, совпадает ли одна строка с другой, вы можете использовать метод с именем equals.

String user_name = "Иван";

if(user_name.equals("Иван")) {
    //какой-то код
}

В приведенном выше коде мы создали переменную String и назвали ее user_name. Затем мы присвоили ей значение «Иван». В круглых скобках if мы снова пишем имя переменной, за которым следует точка. После точки следует слово equals. Между другой парой круглых скобок вы вводите строку, которую вы хотите проверить.

ПРИМЕЧАНИЕ. При проверке, совпадает ли одна строка с другой, учтите, что они должны совпадать точно. То есть «Иван» отличается от «иван». Первая имеет заглавную букву «И», а вторая - строчную «и».
Для этого упражнения напишите программу, в которой пользователю предлагается выбрать один из четырех цветов: черный, белый, красный или синий. Используйте операторы if… else if для отображения одного из следующих сообщений, в зависимости от того, какой цвет был выбран:

ЧЕРНЫЙ "Должно быть, вы брюнет(ка)!" 
БЕЛЫЙ "Вы светлый человек" 
КРАСНЫЙ "Вы веселый и общительный" 
СИНИЙ "Вы творческий человек"

Когда ваша программа заканчивается, окно вывода должно выглядеть примерно так:

Результат упражнения C

Ответ на упражнение D

Хорошо, давайте двигаться дальше и взглянем на циклы. В следующем уроке мы немного ускорим темп, так что держитесь за свои шляпы!

Дата обновления: 27.07.2019

  • Текущий 0.00/5
  • 1
  • 2
  • 3
  • 4
  • 5

/Рейтинг: 0.0/5 (0 голос(ов) всего)

Добавить комментарий (без регистрации)