Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Билеты 1-12 (от Кати).doc
Скачиваний:
4
Добавлен:
24.04.2019
Размер:
298.5 Кб
Скачать

4.2. Оператор switch:

Важным случаем выбора из нескольких вариантов является ситуация, при которой выбор варианта определяется значениями некоторого выражения. Такой выбор можно описать и оператором if, но тогда выражение придётся повторять в каждом условии. Более наглядным такой выбор можно сделать с помощью оператора switch. Вот его синтаксис:

switch (выражение) { case константное_выражение_1: операторы_1 оператор_перехода_1 ... case константное_выражение_K: операторы_K оператор_перехода_K default: операторы_N оператор_перехода_N }

Конструкция не очень строгая. Ветвь default может отсутствовать. Так же могут отсутствовать операторы перехода (если программисту так надо). А вот константные выражения в case должны иметь тот же тип, что и switch-выражение.

Из-за нестрогости конструкции семантика оператора switch чуть-чуть запутана. Вначале вычисляется значение switch-выражения. Затем оно поочерёдно в порядке следования case сравнивается на совпадение с константными выражениями. Как только достигнуто совпадение, выполняется соответствующая последовательность операторов case-ветви. Поскольку последний оператор этой последовательности является оператором перехода (чаще всего это оператор break), то обычно он завершает выполнение оператора switch. При его отсутствии управление "проваливается" в следующую case-ветвь. Если значение switch-выражения не совпадает ни с одним константным выражением, то выполняется последовательность операторов ветви default, если, конечно, она есть. Пример записи оператора:

switch (variant) { case 1: Console.Write("Сторона А = "); temp = Console.ReadLine(); a = Convert.ToDouble(temp); Console.Write("Сторона B = "); temp = Console.ReadLine(); b = Convert.ToDouble(temp); Console.WriteLine("Площадь прямоугольника = "+a*b); break; case 2: Console.Write("Сторона А = "); temp = Console.ReadLine(); a = Convert.ToDouble(temp); Console.Write("Высота H = "); temp = Console.ReadLine(); h = Convert.ToDouble(temp); Console.WriteLine("Площадь треугольниика = "+ a * h / 2); break; . . . . . . . . . . . . . . . . . . . . default: Console.WriteLine("Выбор неверен "); break; }

(надо еще что-то добавить =))

9) Операторы цикла.

5.1. Оператор for:

Синтаксис оператора:

for (инициализаторы; условие; список_выражений) оператор

Оператор, стоящий после круглой закрывающей скобки, задаёт тело цикла. В большинстве случаев телом цикла является блок, но может быть и любой одиночный оператор. Сколько раз будет выполняться тело цикла, зависит от трёх управляющих элементов, заданных в скобках. Инициализаторы задают начальное значение одной или нескольких переменных, часто называемых счётчиками или просто переменными цикла. В большинстве случаев цикл for имеет один счётчик, но иногда бывает полезно иметь несколько счётчиков. Значение условия определяет, должен продолжаться цикл или должен завершиться. Если значение условия true, то цикл продолжается. Если false, то цикл завершается. Список выражений, записанный через запятую, показывает, как меняются счётчики цикла на каждом шаге выполнения.

Выполнение начинается с выполнения инициализаторов. Затем проверяется условие. Если условие цикла истинно, то выполняется тело цикла, затем изменяются значения счётчиков и снова проверяется условие. Как только условие становится ложным, цикл завершает свою работу. В цикле for тело цикла может ни разу не выполняться, если условие цикла ложно после инициализации, а может происходить зацикливание, если условие всегда остаётся истинным. В нормальной ситуации тело цикла выполняется конечное число раз. Счётчики цикла зачастую объявляются непосредственно в инициализаторе и, соответственно, являются переменными, локализованными в цикле, так что после завершения цикла они перестают существовать. Пример записи оператора – вычисление факториала натурального числа:

for (int i = 1, r = 1; i <= n; i++) {  r = r*i; }