русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Оператор switch


Дата добавления: 2015-01-08; просмотров: 539; Нарушение авторских прав


Этот оператор используется в случае, если необходим выбор из множества вариантов выполнения программы в зависимости от значения выражения. То же самое можно реализовать последовательностью вложенных операторов if…else, но это будет неудобно с точки зрения чтения программы и неэффективно с точки зрения её выполнения. Синтаксис оператора switch представлен ниже.

switch (выражение) {

case константа1:

последовательность инструкций;

break;

case константа2:

последовательность инструкций;

break;

case константаN:

последовательность инструкций;

break;

default:

последовательность инструкций;

}

Выражение, которое используется для выбора ветви выполнения должно возвращать целый или символьный результат. Оно вычисляется в начале выполнения оператора switch. Затем последовательно проверяются значения констант, указанных в case-ветвях. При совпадении значения константы со значением выражения управление передаётся в соответствующую ветвь. Инструкции из этой ветви выполняются до тех пор, пока не встретится оператор break, который прерывает выполнение оператора switch.

Если ни одна из констант не совпадает с результатом вычисления выражения, то выполняется ветвь default (которая является необязательной и может быть не задана).

Пример использования оператора switch.

#include <iostream>

using namespace std;

 

void main()

{

setlocale(LC_ALL, "Russian"); // русификация консоли

int a = 10, b = 5;

char c;

cout << "Введите +, -, * или / \n";

cin >> c;

switch (c) {

case '+':

cout << "10 + 5 = " << a + b;

break;

case '-':

cout << "10 - 5 = " << a - b;

break;

case '*':

cout << "10 * 5 = " << a * b;

break;

case '/':

cout << "10 / 5 = " << a / b;



break;

default:

cout << "Введён неверный символ";

}

cout << endl;

system("pause"); // задержка окна программы

}

Здесь пользователь вводит символ (если введены несколько – считан будет только первый), который проверяется в операторе switch. Если введён непредусмотренный символ, то будет выполнена ветвь default.

Предостережение! Нельзя забывать завершать ветви оператором break. Если этого не сделать, то после того, как будут выполнены все инструкции в текущей ветви, программа «провалится» в следующую ветвь и начнёт выполнять инструкции из нее независимо от значения константы, заданного в case. Например, при выполнении нижеприведённого оператора если пользователь введет '+', то ему выведутся результаты сначала сложения, а потом – вычитания и умножения. И только потом встретится break, который прервет выполнение.

switch (c) {

case '+':

cout << "10 + 5 = " << a + b;

case '-':

cout << "10 - 5 = " << a - b;

case '*':

cout << "10 * 5 = " << a * b;

break;

case '/':

cout << "10 / 5 = " << a / b;



break;

default:

cout << "Введён неверный символ";

}

Эта особенность оператора switch иногда осознанно используется в программах. В таких случаях необходимо комментировать подобные места, чтобы программисты, разбирающиеся в программе, не приняли их за ошибки.

Оператор switch допускает пустые ветви case, что позволяет для нескольких констант выполнять одну последовательность инструкций. Например:

short x;

cout << "Введите число от 2 до 6\n";

cin >> x;

switch (x){

case 2:

case 3:

case 5:

cout << "Введено простое число\n";

break;

case 4:

case 6:

cout << "Введено составное число\n";

break;

default:

cout << "Введено неверное число\n";



<== предыдущая лекция | следующая лекция ==>
Условный оператор (if) | Цикл for


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.048 сек.