000124. Блочные конструкции. Оператор управдения swith
Блочные конструкции. Оператор управдения swith||wmysterio|wmysterio|wmysterio@yandex.ru|/||Всем привет! Мы продолжаем изучать блочные конструкции C#. И на этот раз мы поговорим о switch - управляющем операторе. Суть этой конструкции в том, чтобы выполнять нужный код в зависимости от переданного в него параметров. Сама конструкция выглядит следующим образом:
switch (Выражение) { Код1.... Код2.... Код3.... Код4.... КодN.... } |
Что бы конструкция обрабатывала нужный код, нам нужно указать возможный вариант с помощью оператора case:
case Выражение1: Код выполения1; break; |
Оператор break ставить обязательно, что бы код мог продолжаться после выполнения действий в case, то есть выйти с конструкции. Выполнятся код будет тот, если Выражение будет равно Выражение1. Если оно не будет равно, то будет сравнение Выражение следующего case. И так до тех пор, пока не будет выполнено одно из условий. Если ни один вариант не подошел, то, как правило указывают ещё один оператор - default, то есть код, выполняемый по умолчанию:
default : Код выполения1; break; |
Вот вам простой пример:
int CS = 8; switch ( CS ) { case 1: CS *= 2; break; case 2: CS /= 2; break; case 3: CS += 2; break; case 4: CS -= 2; break; default: CS = 0; break; } |
Эту конструкцию можно заменить следующим кодом, который для вас будет более понятен:
int CS = 8; if (CS == 1) { CS *= 2; } else if (CS == 2) { CS /= 2; } else if (CS == 3) { CS += 2; } else if (CS == 4) { CS -= 2; } else { CS = 0; } |
Но есть одно "Но" В операторе свитч(switch) существует такое понятие как "проваливание". Если Выражение свитча будет равно кейсу(case), но никакого кода не предусмотрено для выполнения, то идёт как бы "проваливание" вниз по кейсам и будет выполнен ближайший код. Приведу вам пример:
int CS = 2; switch ( CS ) { case 1: case 2: case 3: CS += 2; break; case 4: default: CS = 0; break; } |
Как мы видим существует кейс, который равен выражению свитча, но никакого кода для него не предусмотрено, таким образом будет выполнен код следующего кейса, который имеет команды. В нашем случаи это код кейса 3. На выходе наша переменная CS будет равна 2+2 = 4. Если мы использовали условия(оставив только условие CS == 3), как написано выше, то на выходе мы получили бы 0. Иногда это используют и даже бывает полезным, но всё же это делается крайне редко. В Sanny Builder есть аналог этой конструкции - таблицы переходов. Главное отличие в том, что в swith мы можем подставлять выражения любого примитивного типа данных. Вот мы рассмотрели очередную блочную констукцию. Надеюсь, это поможет вам в разработке как скриптов к GTA 4, так и приложений на c#.|487|1|0||blochnye_konstrukcii_upravljajushhij_operator|1392798779
Last updated