switch arduino

switch arduino

Оператор Switch
Я уже писал про использование конструкции if, её альтернативой является оператор switch.
Если у вас может быть много значений одной переменной — то лучше воспользоваться не if, а альтернативным и более эффективный условным оператором switch.

Switch

Ниже мы рассмотрим 2 примера. С использованием if и switch.
Если переменная color равна
1-    будет выведен Красный, 
2-    будет выведен Синий,
3-    будет выведен Зелёный,
4-    будет выведен Жёлтый,
5-    будет выведен Фиолетовый,
Любая другая цифра выведет - Чёрный,

int color =1;
void setup() {
  Serial.begin(9600);
}
void loop() {
  if (color == 1)
        Serial.println("Красный");
    else if (color == 2)
        Serial.println("Синий");
    else if (color == 3)
        Serial.println("Зелёный");
    else if (color == 4)
        Serial.println("Жёлтый");
    else if (color == 5)
        Serial.println("Фиолетовый");
    else
        Serial.println("Чёрный");
}

А вот так с использованием оператора switch:
1-    будет выведен Красный, 
2-    будет выведен Синий,
3-    будет выведен Зелёный, Жёлтый, Фиолетовый,
Любая другая цифра выведет - Чёрный

int color =1;
void setup() {
  Serial.begin(9600);
}
void loop() {
switch (color) {
    case 1:
      Serial.println("Красный");
      break;
    case 2:
      Serial.println("Синий");
      break;
    case 3:
      Serial.println("Зелёный");
      Serial.println("Жёлтый");
      Serial.println("Фиолетовый");
      break;
    default: 
      Serial.println("Чёрный");
  }

Как видите этот оператор Switch намного удобнее. 
Оператор switch сравнивает значение с переменной COLOR. 
Когда найден оператор case равный переменной COLOR, выполняется код в этом операторе.
Ключевое слово break является командой выхода из оператора case и обычно используется в конце каждого case. Без оператора break оператор switch будет продолжать вычислять следующие выражения, пока не достигнет break или конец оператора switch.
В одном case может быть много команд для выполнения.
Если нет ни одного подходящего значения, то выполнится команда default.