Switch и case: оператор выбора — введение в Java #008

Switch и case: оператор выбора

Оператор выбора - Switch, опции выбора Case.
Пример:
За пятёрку в четверти по математике папа мне обещал велосипед.
За четвёрку в четверти по математике мама купит мне GoPro4.
За тройку меня наверное не будут ругать.
За двойку меня отругают.
За единицу меня "убьют".

Типичный жизненный пример, который можно написать на Java:

  1. public class Switch_one {
  2.     public static void main(String[] args) {
  3.  
  4.         int оценкаВЧетверти = 1;
  5.         String награда;
  6.  
  7.         switch (оценкаВЧетверти) {
  8.             case 5:
  9.                 награда = "Велосипед";
  10.                 break;
  11.             case 4:
  12.                 награда = "GoPro4";
  13.                 break;
  14.             case 3:
  15.                 награда = "Награды не будет";
  16.                 break;
  17.             case 2:
  18.                 награда = "Потерянный час времени и плохое настроение";
  19.                 break;
  20.             case 1:
  21.                 награда = "По грибам";
  22.                 break;
  23.             default:
  24.                 награда = "Такой оценки не существует";
  25.                 break;
  26.         }
  27.         System.out.println(награда);
  28.     }
  29. }

Мы видим, что каждая оценка заканчивается брейком: Если брейк не ставить, то выбор селектирует следующую награду. Удобное если у нас одинаковый результат на несколько переменных. Заканчивается ввод данных дефаултным выбором, который выдаётся при получение непредусмотренных данных или лучше сказать всех остальных неуказанных.

При наличии множественных выборов удобно использовать switch и case. Направо пойдёшь коня потеряешь, прямо.... Это именно тот случай где уже можно использовать такой алгоритм действий.

Первый же пример из поиска приведёт нас к календарю. Это наиболее используемый пример в учебниках. 12 месяцев с уникальным названием и ID:

  1. public class SwitchDemo {
  2.     public static void main(String[] args) {
  3.  
  4.         int month = 8;
  5.         String monthString;
  6.         switch (month) {
  7.             case 1:  monthString = "January";
  8.                      break;
  9.             case 2:  monthString = "February";
  10.                      break;
  11.             case 3:  monthString = "March";
  12.                      break;
  13.             case 4:  monthString = "April";
  14.                      break;
  15.             case 5:  monthString = "May";
  16.                      break;
  17.             case 6:  monthString = "June";
  18.                      break;
  19.             case 7:  monthString = "July";
  20.                      break;
  21.             case 8:  monthString = "August";
  22.                      break;
  23.             case 9:  monthString = "September";
  24.                      break;
  25.             case 10: monthString = "October";
  26.                      break;
  27.             case 11: monthString = "November";
  28.                      break;
  29.             case 12: monthString = "December";
  30.                      break;
  31.             default: monthString = "Invalid month";
  32.                      break;
  33.         }
  34.         System.out.println(monthString);
  35.     }
  36. }

В итоге работы данной конструкции мы получаем переменную с нужным значением. В последнем случае "monthString", или в случае с оценкой "награда". Абсолютно простая конструкция, где самое сложное синтаксис, который просто надо выучить. И после написания 30 различных примеров без шпаргалок он в крови.

Для закрепления рассмотрим ещё пример:

  1. public class SwitchNotOne {
  2.     public static void main(String[] args) {
  3.         int a = 5, b, c;
  4.         switch (a) {
  5.             case 1:
  6.                 b = 10;
  7.             case 2:
  8.             case 3:
  9.                 b = 20;
  10.                 break;
  11.             case 4:
  12.                 b = 20;
  13.                 break;
  14.             case 5:
  15.                 b = 20;
  16.                 c = a + b;
  17.                 break;
  18.             default:
  19.                 b = 40;
  20.                 c = b +a;
  21.         }
  22.         System.out.println(a +b +c);        
  23.     }
  24. }

В этой конструкции заложена одна ошибка. Её видно в IDE и по этому долго мучить вас не буду. Switch не выполняет несколько команд. Он может совершить только одну операцию. Иногда этого недостаточно. И что делать тогда мы узнаем в следующем уроке, а пока домашнее задание:

1.Напишите программу действий кассира магазина. Если у него пытаются купить алкоголь следующие 5 покупателей:
10 лет, 17 лет, 18 лет, 20 лет и 30 лет.
2. Напишите программу, которая определяет сезон года. Месяца указаны int переменными.

Добавить комментарий

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и абзацы переносятся автоматически.
Target Image