}
Здесь Выражение — это любое выражение целого типа (чаще — просто переменная), например типа int. Так же допустимо в качестве Выражения использовать выражение символьного типа char или строкового типа string.
Далее в блоке за заголовком мы видим набор конструкций вида
case Константа: Операторы; break;
В них Константа — это константа того же типа, что и Выражение. Операторы — любые исполняемые операторы. Количество их произвольное, оформлять блоком не требуется.
Алгоритм работы оператора switch:
1. Вычисляется значение Выражения.
2. Затем среди рассмотренных выше конструкций ищется такая, которая начинается с Константы, равной значению Выражения. Если Константа найдена, то выполняются следующие за ней Операторы. Оператор break осуществляет выход из оператора switch. Если ни одна из Констант не равна значению Выражения, то выполняется ветвь default (по умолчанию), и оператор заканчивает работу.
Ветвь default в операторе switch может отсутствовать. В этом случае, если ни одна из ветвей не соответствует значению Выражения, то делается выход из оператора switch.
Количество вариантов в операторе switch ни чем не ограничено. В принципе, они все могут отсутствовать (как и ветвь default), то есть вполне можно написать:
switch(Выражение) { }
но фигурные скобки за заголовком должны быть всегда.
Пример 1. По номеру дня недели вывести на экране монитора название этого дня недели.
Возможный вариант решения:
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Задайте номер недели:");
int n = int.Parse(Console.ReadLine());
switch(n)
{
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("Неверный номер для дня недели: {0}", n);
break;
}
Console.Write("Press any key to continue... ");
Console.ReadKey(true);
}
}
}
Оператор goto
Этот оператор позволяет сделать переход в пределах текущего метода. Переход возможен как по ходу выполнения программы, так и в обратном направлении. Пример:
Goto Metka;
// Любые операторы
//...............
Metka:;
Здесь Metka — это идентификатор (метка), обозначающий то место в тексте программы, куда делается переход. Такая метка не требует описания (её и нельзя описывать!), задается по общим правилам и не может совпадать ни с ключевыми словами, ни с именами объектов программы.
В языке C# этот оператор используется редко. Необдуманное применение goto приводит к затруднению понимания текста программы. Как правило, если в тексте программы требуется использование этого оператора, то это означает слабую логику в проектировании алгоритма программы.
Варианты заданий
1. Вычислить объем тела со сторонами A, B, C и определить, является ли данное геометрическое тело кубом.
2. Вычислить площадь треугольника со сторонами А, В, С. Перед вычислением площади проверить условие существования треугольника с заданными сторонами.
3. Вычислить площадь треугольника со сторонами A, B, C. Определить, является ли треугольник равнобедренным.
4. Вычислить площадь прямоугольника со сторонами A и B и определить, является ли данная фигура квадратом.
5. Составить программу нахождения корней квадратного уравнения у=ах2+bх+с.
6. Определить, можно ли сделать круглую заготовку с заданным радиусом R из квадратного листа фанеры с заданной стороной A.
7. Определить, хватит ли имеющейся суммы S на покупку N-го количества товара (при известной цене товара).
8. Определить, можно ли сделать две квадратных заготовки со стороной А из листа железа прямоугольной формы со сторонами В и С.
9. Определить, достаточно ли имеющейся ткани для изготовления изделий двух видов, если известны: расход ткани на каждое изделие, количество изделий каждого вида, количество имеющейся ткани.
10. Рассчитать сумму оплаты за потребленную энергию, если известны: стоимость 1 квт\час, расход энергии, коэффициент льгот (льготы могут отсутствовать).
11. Определить, достаточно ли бензина для поездки, если известны: длина пути, количество бензина в баке и расход бензина на 1 км.
12. Определить, будет ли начислена студенту стипендия по результатам экзаменов (стипендия начисляется, если все экзамены сданы на «хорошо» и «отлично»).
13. Определить, будет ли зачислен абитуриент в студенты по результатам вступительных экзаменов, если известны: проходной балл; количество баллов, набранных абитуриентом по каждому экзамену.
14. Определить, изделия какой из двух групп товаров выгоднее сшить из одного рулона ткани, если известны: расход ткани на каждое изделие и цена готового изделия, количество метров в рулоне.
15. Определить выполнен ли план по продаже товара за день, если известны: план продажи (в рублях), количество проданного товара и цена товара.
16. Определить, продажа какой из двух валют составила большую прибыль, если известны: курс покупки, курс продажи, количество продаж по каждой валюте.
17. Определить наибольшую выручку от продажи трех видов товаров, если известны: цена товара; количество проданных товаров каждого вида.
18. Определить сколько корней имеет уравнение y= ах2+вх+с.
19. Определить, является ли число А четным или нечетным.
20. Вычислить площадь треугольника со сторонами A, B, C и определить, является ли данный треугольник равносторонним.
Содержание отчета (см. пункт 1.10)
Контрольные вопросы
1. Назначение, формы записи и порядок выполнения оператора условия if.
2. Особенности использования вложенных условных операторов.
3. Каковы отличия оператора выбора switch.. case от оператора условия if?
4. Какие правила должны выполняться при использовании оператора выбора switch.. case?
5. Назначение и особенности оператора безусловного перехода.
6. Для чего нужна отладка программы?
7. Как выполнять программу в пошаговом режиме?
8. Как поставить точку останова?
9. Как отменить точки останова?
10. Как открыть окно Watch?