Рекомендуем, 2024

Выбор редакции

Разница между if-else и switch

«If-else» и «switch» - это операторы выбора. Операторы выбора переносят поток программы в конкретный блок операторов в зависимости от того, является ли условие «истинным» или «ложным». Принципиальное различие между операторами if-else и switch состоит в том, что оператор if-else «выбирает выполнение операторов на основе оценки выражения в операторах if». Оператор switch «выбирает выполнение оператора часто на основе клавиатуры».

Сравнительная таблица

Основа для сравненияесли ещепереключатель
основнойКакой оператор будет выполняться, зависит от вывода выражения внутри оператора if.Какой оператор будет выполняться, решает пользователь.
выражениеОператор if-else использует несколько операторов для множественного выбора.Инструкция switch использует одно выражение для множественного выбора.
тестированиеПроверка оператора if-else как на равенство, так и на логическое выражение.Переключатель операторов проверяется только на равенство.
оценкаОператор if оценивает целочисленный, символьный, указатель или тип с плавающей точкой или логический тип.оператор switch оценивает только символ или целочисленное значение.
Последовательность исполненияЛибо, если оператор будет выполнен или оператор выполняется.оператор switch выполняет один случай за другим, пока не появится оператор break или не будет достигнут конец оператора switch.
Выполнение по умолчаниюЕсли условие внутри операторов if ложно, то по умолчанию выполняется оператор else, если он создан.Если условие внутри операторов switch не совпадает ни с одним из случаев, для этого экземпляра выполняются операторы по умолчанию, если они созданы.
редактированиеСложно редактировать оператор if-else, если используется вложенный оператор if-else.Случаи переключения легко редактировать, так как они легко распознаются.

Определение if-else

Операторы if-else принадлежат операторам выбора в ООП. Общая форма операторов if-else следующая

 if (expression) {оператор (ы)} else {оператор (ы)} 

где «if» и «else» являются ключевыми словами, а операторы могут быть одним оператором или блоком операторов. Выражение оценивается как «истина» для любого ненулевого значения, а для нуля оно оценивается как «ложь».
Выражение в операторе if может содержать целое число, символ, указатель, с плавающей точкой или логический тип. Оператор else является необязательным в операторе if-else. Если выражение возвращает true, операторы внутри оператора if выполняются, и если оно возвращает false, выполняются операторы внутри оператора else, а в случае, если оператор else не создан, никакие действия не выполняются, и управление программой выпадает. оператора if-else.

Давайте разберемся с примером.

 int i = 45, j = 34; if (i == 45 & j == 34) {cout << "я выбираю темный шоколад"; перерыв; case 2: cout << «выбираешь конфету»; перерыв; case 3: cout << «Вы выбираете леденец на палочке»; перерыв;, , cout по умолчанию << «Вы ничего не выбираете»; } 

Здесь значение «i» будет определять, какой регистр должен быть выполнен, если пользователь задает значение «i», отличное от 1, 2 или 3, тогда выполняется регистр по умолчанию.

Ключевые различия между if-else и switch

  1. Выражение внутри оператора if решает, выполнять ли операторы внутри блока if или под блоком else. С другой стороны, выражение внутри оператора switch решает, какой случай выполнить.
  2. Вы можете иметь несколько операторов if для множественного выбора операторов. В переключателе у вас есть только одно выражение для множественного выбора.
  3. Оператор if-esle проверяет как равенство, так и логическое выражение. С другой стороны, переключатель проверяет только на равенство.
  4. Оператор if оценивает целочисленный, символьный, указатель или тип с плавающей точкой или логический тип. С другой стороны, оператор switch оценивает только символьный или целочисленный тип данных.
  5. Последовательность выполнения аналогична либо выражению оператора в случае выполнения блока, либо операторам в выражении блока else. С другой стороны, выражение в операторе switch решает, какой случай выполнить, и если вы не применяете оператор break после каждого случая, он будет выполняться до конца оператора switch.
  6. Если выражение внутри, если получится ложным, будет выполнен оператор внутри блока else. Если выражение внутри оператора switch оказывается ложным, то выполняются операторы по умолчанию.
  7. Трудно редактировать операторы if-else, так как утомительно прослеживать, где требуется исправление. С другой стороны, операторы switch легко редактировать, так как их легко отслеживать.

Заключение:

Оператор switch легко редактировать, поскольку он создал отдельные случаи для разных операторов, тогда как во вложенных операторах if-else становится трудно идентифицировать операторы, которые нужно редактировать.

Top