Рейтинг - 5.0 (2)

Всем привет! Мы продолжаем изучать блочные конструкции 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;
}
Но есть одно "Но" smile В операторе свитч(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#.

Теги: Блочные конструкции. Оператор управ
Вход на сайт

Поиск
Категории раздела
Мини-чат
Пожалуйста, все вопросы по скриптингу задавать на форуме!
Наш опрос
Какая GTA Вам понравилась больше всего?
Всего ответов: 7
Активность на сайте
Пожертвования
Кошельки WebMoney:
U859420971000
R407741810602
Z331072372430
E314272616890
Друзья сайта
Полезные ресурсы
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Сегодня нас посетили:
wmysterio, DK22Pac
Реклама