
- •Лабораторная работа №1 знакомство со средой визуального программирования ms visual studio
- •2. Домашнее задание и методические указания по его выполнению
- •2.1. Обзор Microsoft Visual Studio 2005
- •2.2. Создание простого приложения в ms Visual Studio
- •2.2. Отладка программы
- •2.3. Пошаговый режим
- •3. Лабораторное задание и методические указания по его выполнению
- •4. Контрольные вопросы
- •Лабораторная работа №2 управляющие операторы
- •2. Домашнее задание и методические указания по его выполнению
- •2.1. Условные операторы
- •2.1.1 Оператор if
- •2.1.2 Оператор switch
- •2.2 Операторы перехода
- •2.2.1 Операторы break и continue
- •2.2.2 Оператор return
- •2.3 Операторы цикла
- •2.3.1 Оператор for
- •2.3.2 Цикл while
- •2.3.3 Цикл do-while
- •3. Лабораторное задание и методические указания по его выполнению
- •4. Контрольные вопросы
- •5. Варианты заданий
- •Лабораторная работа №3 классы. Наследование. Полиморфизм. Интерфейсы.
- •2. Домашнее задание и методические указания по его выполнению
- •2.1 Основные понятия объектно-ориентированного программирования
- •2.2. Класса. Организация классов.
- •2.2.1. Поля и методы
- •2.2.2. Объявление объектов класса. Инициализация членов класса.
- •2.2.3. Конструкторы и деструкторы.
- •2.2.4. Пример работы с классами
- •2.3. Наследование
- •2.4. Полиморфизм.
- •2.4.1. Абстрактные классы.
- •2.5. Интерфейсы.
- •2.5. Реализация интерфейсов
- •3. Лабораторное задание и методические указания по его выполнению
- •4. Варианты заданий
- •Библиографический список
2.1.2 Оператор switch
Частным, но важным случаем выбора из нескольких вариантов является ситуация, при которой выбор варианта определяется значениями некоторого выражения. Соответствующий оператор C#, унаследованный от C++, но с небольшими изменениями в синтаксисе, называется оператором switch. Вот его синтаксис:
switch(выражение)
{
case константное_выражение_1: [операторы_1 оператор_перехода_1]
...
case константное_выражение_K: [операторы_K оператор_перехода_K]
[default: операторы_N оператор_перехода_N]
}
Вначале вычисляется значение switch-выражения. Затем оно поочередно в порядке следования case сравнивается на совпадение с константными выражениями. Как только достигнуто совпадение, выполняется соответствующая последовательность операторов case-ветви. Поскольку последний оператор этой последовательности является оператором перехода (чаще всего это оператор break), то обычно он завершает выполнение оператора switch Семантика осложняется еще и тем, что case-ветвь может быть пустой последовательностью операторов. Тогда в случае совпадения константного выражения этой ветви со значением switch-выражения будет выполняться первая непустая последовательность очередной case-ветви. Если значение switch-выражения не совпадает ни с одним константным выражением, то выполняется последовательность операторов ветви default, если же таковой ветви нет, то оператор switch эквивалентен пустому оператору.
Когда разбор случаев предполагает проверку попадания в некоторый диапазон значений, приходится прибегать к оператору if для формирования специальной переменной. Этот прием демонстрируется в следующем примере:
/// <summary>
/// Использование разбора случаев - оператора switch
/// </summary>
public void SetBalStr()
{
switch (bal)
{
case 2:
status = "неудовлетворительно";
break;
case 3:
status = "удовлетворительно";
break;
case 4:
status = "хорошо";
break;
case 5:
status = "отлично ";
break;
default :
status = "не явился";
break;
}
В данной программе мы переводим оценку из цифрового формата в прописной эквивалент.
2.2 Операторы перехода
Операторов перехода, позволяющих прервать естественный порядок выполнения операторов блока, в языке C# имеется несколько.
2.2.1 Операторы break и continue
В структурном программировании признаются полезными "переходы вперед" (но не назад), позволяющие при выполнении некоторого условия выйти из цикла, из оператора выбора, из блока. Для этой цели можно использовать оператор goto, но лучше применять специально предназначенные для этих целей операторы break и continue.
Оператор break может стоять в теле цикла или завершать case-ветвь в операторе switch. Пример его использования в операторе switch уже демонстрировался. При выполнении оператора break в теле цикла завершается выполнение самого внутреннего цикла. В теле цикла, чаще всего, оператор break помещается в одну из ветвей оператора if, проверяющего условие преждевременного завершения цикла:
public void Jumps()
{
int i = 1, j=1;
for(i =1; i<100; i++)
{
for(j = 1; j<10;j++)
{
if (j>=3) break;
}
Console.WriteLine("Выход из цикла j при j = {0}", j);
if (i>=3) break;
}
Console.WriteLine("Выход из цикла i при i= {0}", i);
}//Jumps
Оператор continue используется только в теле цикла. В отличие от оператора break, завершающего внутренний цикл, continue осуществляет переход к следующей итерации этого цикла.