Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алгоритмизация и программирование .doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.35 Mб
Скачать

4.3. Оператор switch

Часто возникающая в программировании задача – выбор одного варианта из многих. Это можно сделать с помощью групп операторов if…else. Однако более удобный способ – использование оператора switch, общий формат которого таков:

switch (switch_expression)

{

case constant1: statement1; [break;]

case constant2: statement2; [break;]

. . .

case constantN: statementN; [break;]

[default: statement N+1;]

}

Оператор switch выполняется так. Сначала вычисляется значение выражения switch_expression. Тип значения должен быть одним из целых – char, int, unsigned int, long int и long unsigned. Вычисленное значение сравнивается со значениями констант или константных выражений constant1,…, constantN. При совпадении значения switch_expression с constanti, выполняется оператор statementi. Затем управление передается на оператор сразу после switch, если в i-й ветви присутствует оператор break. В противном случае выполняются операторы в ветвях i+1, i+2 и так далее до тех пор, пока в них не встретится оператор break или не будет выполнен оператор statement N+1.

Если значение switch_expression не совпало ни с одной из констант constant1, …, consnantN, выполняется оператор в ветви, помеченной default. При ее отсутствии выполняется следующий после switch оператор.

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

#include "stdafx.h"

using namespace System;

int main()

{ wchar_t x;

Console::WriteLine("Введите первую букву имени функции");

Console::WriteLine("S- Sin\nC – Cos\nA – Atan");

x = Convert::ToChar(Console::ReadLine());

switch (x)

{

case 's':

case 'S':

Console::WriteLine("Вычисление синуса в радианах");

break;

case 'c':

case 'C':

Console::WriteLine("Вычисление косинуса в радианах");

break;

case 'a':

case 'A':

Console::WriteLine("Вычисление арктангенса");

Console::WriteLine(" в радианах");

break;

default:

Console::WriteLine("Ошибка");

break;

}

Console::WriteLine("Конец программы");

Console::ReadLine();

return 0;

}

Результат работы программы (при вводе значения ‘C’):

Введите первую букву имени функции

С <Enter>

Вычисление косинуса в радианах

Конец программы

Пример 4_5. Использование оператора switch (без операторов break):

#include "stdafx.h"

using namespace System;

int main()

{ wchar_t x;

Console::WriteLine("Введите первую букву имени функции");

Console::WriteLine("S- Sin\nC – Cos\nA – Atan");

x = Convert::ToChar(Console::ReadLine());

switch (x)

{

case 's':

case 'S':

Console::WriteLine("Вычисление синуса в радианах");

//break;

case 'c':

case 'C':

Console::WriteLine("Вычисление косинуса в радианах");

//break;

case 'a':

case 'A':

Console::Write("Вычисление арктангенса");

Console::WriteLine(" в радианах");

// break;

default:

Console::WriteLine("Ошибка");

//break;

}

Console::WriteLine("Конец программы");

Console::ReadLine();

return 0;

}

Результат работы программы (при вводе значения ‘C’):

Введите первую букву имени функции

С <Enter>

Вычисление косинуса в радианах

Вычисление арктангенса в радианах

Ошибка

Конец программы