Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Оператор switch






Частным, но важным случаем выбора из нескольких вариантов является ситуация, при которой выбор варианта определяется значениями некоторого выражения. Соответствующий оператор C#, унаследованный от C++, но с небольшими изменениями в синтаксисе, называется оператором switch. Вот его синтаксис:

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

Ветвь default может отсутствовать. Заметьте: по синтаксису допустимо, чтобы после двоеточия следовала пустая последовательность операторов, а не последовательность, заканчивающаяся оператором перехода. Константные выражения в case должны иметь тот же тип, что и switch -выражение.

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

/// < summary> /// Разбор случаев с использованием списков выражений/// < /summary> /// < param name=" operation" > операция над аргументами< /param> /// < param name=" arg1" > первый аргумент бинарной операции< /param> /// < param name=" arg2" > второй аргумент бинарной операции< /param> /// < param name=" result" > результат бинарной операции< /param> public void ExprResult(string operation, double arg1, double arg2, ref double result){ switch (operation) { case " +": case " Plus": case " Плюс": result = arg1 + arg2; break; case " -": case " Minus": case " Минус": result = arg1 - arg2; break; case " *": case " Mult": case " Умножить": result = arg1 * arg2; break; case " /": case " Divide": case " Div": case " разделить": case " Делить": result = arg1 / arg2; break; default: result = 0; break; } }//ExprResult

Операторы перехода

Операторов перехода, позволяющих прервать естественный порядок выполнения операторов блока, в языке C# несколько.


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.013 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал