Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПргЯВУ_ЛК_СтефановаИА.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
4.41 Mб
Скачать

9.3. Инструкции выбора switch, case

Применяется для множественного ветвления на произвольное число направлений.

С его помощью можно выбрать вариант из множества альтернатив.

Если в условии задачи имеется сложный набор условий, то использование вложенных инструкций ifelse приводит к громоздкому коду. Для упрощения кода лучше воспользоваться инструкцией switch (переключение)

Инструкция switch выбирает нужное действие из списка возможных, размещенных во фразах выбора case (выбор).

Общий формат записи:

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

{

case константа_1 : инструкция действия; инструкция прерывания;

case константа_2 : инструкция действия; инструкция прерывания;

……..

default:: инструкция действия; инструкция прерывания;

}

Выполняются инструкции следующим образом:

1. Сначала вычисляется значение выражения.

2. Полученное значение выражения последовательно сравнивается с константами из списка констант секций case.

3. Если значение выражения (или переменной) совпадает с константой из списка, то выполняется соответствующая этому списку группа инструкций в секции case  до тех пор, пока не встретиться инструкция прерывания.

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

Синтаксис инструкций switchcase позволяет не писать default и соответствующую последовательность инструкций. В этом случае, если значение выражения не совпадает ни с одной константой из всех списков, то выполняется следующая за case инструкция программы.

Элемент выражения (помещено в круглые скобки) возвращает константу. Должен быть целочисленного типа (например, char, byte, int), значение которого определяет дальнейший ход выполнения программы.

Выражения, имеющие тип с плавающей точкой не разрешены.

Иногда в качестве управляющего switch – выражения используется просто переменная.

Case – константы должны быть литералами, тип которых совместим с типом заданного выражения. При этом никакие две case – константы в одной switch конструкции не могут иметь идентичных значений.

В качестве инструкции прерывания действия используют break, которая прерывает выполнение инструкции switch. Альтернативой может быть и инструкции goto, которую обычно применяют для перехода в другое место программы.

Пример. Программа запрашивает день недели. В зависимости от введенного номера выводится строка из списка с комментарием.

using System;

namespace ConsoleApplication1

{

class Program

{

static void Main(string[] args)

{

int d;

Console.Write("Введите день недели ");

d= Convert.ToInt16(Console.ReadLine());//преобразует вводимое с клавиатуры число в виде строки в целый тип данных

switch (d)

{

case 1: Console.WriteLine("Понедельник - рабочий день"); break;

case 2: Console.WriteLine("Вторник - рабочий день"); break;

case 3: Console.WriteLine("Среда - рабочий день"); break;

case 4: Console.WriteLine("Четверг - рабочий день"); break;

case 5: Console.WriteLine("Пятница - рабочий день"); break;

case 6: Console.WriteLine("Суббота - самоподготовка"); break;

case 7: Console.WriteLine("Воскресенье - выходной день"); break;

default: Console.WriteLine("Неверный ввод данных. Введите 1<=d<=7"); break;

}

Console.ReadKey();

}

}

}

Результаты работы программы:

. . .