Тема: Инструкции выбора switch, case
Цель: Формирование навыков применения переключателя switch.
Вид работы: индивидуальный.
Время выполнения: 2 часа.
Теоретический материал
Инструкции выбора switch применяется для множественного ветвления на произвольное число направлений.
С его помощью можно выбрать вариант из множества альтернатив.
Если в условии задачи имеется сложный набор условий, то использование вложенных инструкций if…else приводит к громоздкому коду. Для упрощения кода лучше воспользоваться инструкцией switch (переключение)
Инструкция switch выбирает нужное действие из списка возможных, размещенных во фразах выбора case (выбор).
Общий формат записи:
switch (выражение)
{
case константа_1 : инструкция действия; инструкция прерывания;
case константа_2 : инструкция действия; инструкция прерывания;
……..
default:: инструкция действия; инструкция прерывания;
}
Блок-схема изображена на рисунке 12.
Рисунок 11 – Блок-схема переключателя
Выполняются инструкции следующим образом:
1. Сначала вычисляется значение выражения.
2. Полученное значение выражения последовательно сравнивается с константами из списка констант секций case.
3. Если значение выражения (или переменной) совпадает с константой из списка, то выполняется соответствующая этому списку группа инструкций в секции case до тех пор, пока не встретиться инструкция прерывания.
4. Если значение выражения (или переменной) не совпадает ни с одной константой из списка, то, выполняется последовательность инструкций, следующая за default.
Синтаксис инструкций switch, case позволяет не писать default и соответствующую последовательность инструкций. В этом случае, если значение выражения не совпадает ни с одной константой из всех списков, то выполняется следующая за case инструкция программы.
Элемент выражения (помещено в круглые скобки) возвращает константу, который должен быть целочисленного типа (например, char, byte, int), значение которого определяет дальнейший ход выполнения программы.
Выражения, имеющие тип с плавающей точкой не разрешены.
Иногда в качестве управляющего switch – выражения используется просто переменная.
Case – константы должны быть литералами, тип которых совместим с типом заданного выражения. При этом никакие две case – константы в одной switch конструкции не могут иметь идентичных значений.
В качестве инструкции прерывания действия используют break, которая прерывает выполнение инструкции switch. Альтернативой может быть и инструкции goto, которую обычно применяют для перехода в другое место программы.
Ход работы:
Выполнить задание, ответить на вопросы.
Задание
Скомпилировать следующие примеры алгоритмов, записать строки кода с комментариями, зарисовать блок-схему.
Пример 1
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();
}
}
}
Пример 2
static void Main(string[] args)
{
char ch;
Console.WriteLine("Введите букву "); //ввод данных с клавиатуры
ch=Convert.ToChar(Console.ReadLine()); /*преобразует вводимое с клавиатуры число в виде строки в символьный тип данных*/
switch (ch) // переменная символьного типа
{
case 'A': Console.WriteLine("ch содержит A"); break;
case 'B': Console.WriteLine("ch содержит В"); break;
case 'C': Console.WriteLine("ch содержит C"); break;
}
Console.ReadKey();
}
Необязательная инструкция default отсутствует.
Контрольные вопросы:
1) Каким достоинством перед инструкцией if обладает переключатель switch?
2) Какого типа должен быть элемент инструкции, помещаемый в круглые скобки?
3) Для чего предназначена case-константа?
4) Какие инструкции прерывания используются в switch?
Скачано с www.znanio.ru
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.