
Сравнительная таблица
Основа для сравнения | если еще | переключатель |
---|---|---|
основной | Какой оператор будет выполняться, зависит от вывода выражения внутри оператора 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
- Выражение внутри оператора if решает, выполнять ли операторы внутри блока if или под блоком else. С другой стороны, выражение внутри оператора switch решает, какой случай выполнить.
- Вы можете иметь несколько операторов if для множественного выбора операторов. В переключателе у вас есть только одно выражение для множественного выбора.
- Оператор if-esle проверяет как равенство, так и логическое выражение. С другой стороны, переключатель проверяет только на равенство.
- Оператор if оценивает целочисленный, символьный, указатель или тип с плавающей точкой или логический тип. С другой стороны, оператор switch оценивает только символьный или целочисленный тип данных.
- Последовательность выполнения аналогична либо выражению оператора в случае выполнения блока, либо операторам в выражении блока else. С другой стороны, выражение в операторе switch решает, какой случай выполнить, и если вы не применяете оператор break после каждого случая, он будет выполняться до конца оператора switch.
- Если выражение внутри, если получится ложным, будет выполнен оператор внутри блока else. Если выражение внутри оператора switch оказывается ложным, то выполняются операторы по умолчанию.
- Трудно редактировать операторы if-else, так как утомительно прослеживать, где требуется исправление. С другой стороны, операторы switch легко редактировать, так как их легко отслеживать.
Заключение:
Оператор switch легко редактировать, поскольку он создал отдельные случаи для разных операторов, тогда как во вложенных операторах if-else становится трудно идентифицировать операторы, которые нужно редактировать.