Stalker mod
Суббота, 04.05.2024, 17:26
Приветствую Вас Гость | RSS
Главная | Каталог статей | Регистрация | Вход
Меню сайта

Категории раздела
Статьи по созданию модов [12]
buld 1935 [3]
Статьи по buld-у 1935
Оружие [4]
Основы С++ [5]
первые шаги в С++
Статьи по созданию игр [2]

Наш опрос
Какие новые разделы вы хотите видеть на форуме
Всего ответов: 1583

Статистика

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

Рейтинг@Mail.ru


stalker hacks

 
Главная » Статьи » Основы С++

Урок третий. Оператор switch.
В третьем уроке мы рассмотрим оператор switch - выбор

Оператор switch предназначен для организации выбора из множества различных вариантов. Формат оператора следующий:

switch ( выражение ) { [объявление] : [ case константное-выражение1]: [ список-операторов1] [ case константное-выражение2]: [ список-операторов2] : : [ default: [ список операторов ]] }

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

Значение этого выражения является ключевым для выбора из нескольких вариантов. Тело оператора smitch состоит из нескольких операторов, помеченных ключевым словом case с последующим константным-выражением. Следует отметить, что использование целого константного выражения является существенным недостатком, присущим рассмотренному оператору.

Так как константное выражение вычисляется во время трансляции, оно не может содержать переменные или вызовы функций. Обычно в качестве константного выражения используются целые или символьные константы.

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

Список операторов может быть пустым, либо содержать один или более операторов. Причем в операторе switch не требуется заключать последовательность операторов в фигурные скобки.

Отметим также, что в операторе switch можно использовать свои локальные переменные, объявления которых находятся перед первым ключевым словом case, однако в объявлениях не должна использоваться инициализация.

Схема выполнения оператора switch следующая:

- вычисляется выражение в круглых скобках;

- вычисленные значения последовательно сравниваются с константными выражениями, следующими за ключевыми словами case;

- если одно из константных выражений совпадает со значением выражения, то управление передается на оператор, помеченный соответствующим ключевым словом case;

- если ни одно из константных выражений не равно выражению, то управление передается на оператор, помеченный ключевым словом default, а в случае его отсутствия управление передается на следующий после switch оператор.

Отметим интересную особенность использования оператора switch: конструкция со словом default может быть не последней в теле оператора switch. Ключевые слова case и default в теле оператора switch существенны только при начальной проверке, когда определяется начальная точка выполнения тела оператора switch. Все операторы, между начальным оператором и концом тела, выполняются вне зависимости от ключевых слов, если только какой-то из операторов не передаст управления из тела оператора switch. Таким образом, программист должен сам позаботится о выходе из case, если это необходимо. Чаще всего для этого используется оператор break.

Для того, чтобы выполнить одни и те же действия для различных значений выражения, можно пометить один и тот же оператор несколькими ключевыми словами case.

Рассмотрим работу оператора switch на примере предыдущего урока. Весь урок рассматривать не буду, это вы сделаете самостоятельно, остановимся на той части что относится к русскому языку.

# include <iostream>
# include <clocale>
using namespace std;

int main ()
{
    setlocale (LC_CTYPE, "Russian");
    cout << "Введите количество пирожков: ";
    int n;
    cin >> n;
    cout << "Я собираюсь съесть: " << n;
    cout << " пирожков" << endl;
    cin.get();
    cin.get();

}


Результатом выше приведенной программы будет:
  при n = 5 - "Я собираюсь съесть: 5 пирожков"
  при n = 2 - "Я собираюсь съесть: 2 пирожков"
попробуем это исправить, для этого используем оператор % - для получения остатка вводимого количества пирожков, оператор switch для создания правильных вариантов склонения, и оператор if - для указания условий выбора.

# include <iostream>
# include <clocale>
using namespace std;

int main ()
{
    setlocale (LC_CTYPE, "Russian");
    cout << "Введите количество пирожков: ";
    int n;
    cin >> n;
    cout << "Я собираюсь съесть: " << n;
    int o = n % 100; // получение остатка
    if ((o > 10)&& (o < 20))
        cout << " пирожков";
    else
    {
        switch (o % 10)
        {
            case 0:
                cout << " пирожков.";
                break;
            case 1:
                cout << " пирожок.";
                break;
            case 2:
            case 3:
            case 4:
                cout << " пирожка.";
                break;
            case 5:
            case 6:
            case 7:
            case 8:
            case 9:
                cout << " пирожков.";
                break;
        }
    }
    cout << endl;
    cin.get();
    cin.get();

Вот мы и научили компьютер правилам русского языка  :)


 


Категория: Основы С++ | Добавил: DmitrjT (19.04.2010)
Просмотров: 5818 | Комментарии: 1 | Рейтинг: 5.0/1 |
Всего комментариев: 1
1 Ева Митник  
0
Хороший сайт:3

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Поиск

Друзья сайта
  • Лучший игровой портал
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz


  • Unreal Commander Gameru Net
    Copyright MyCorp © 2024
    Конструктор сайтов - uCoz