C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 Урок 4. Операторы ветвления / Основы Visual C++ / Visual C++

Основы Visual C++
Урок 4. Операторы ветвления

В C/C++, как и в любом языке программирования, существуют два вида операторов ветвления (или, иначе, их называют условными операторами). Первый из них (if) даёт возможным два дальнейших пути для нашей программы (или сюда, или сюда), второй (switch) - несколько (или сюда, или сюда, или сюда и т. д.).

Приведем сразу несколько примеров:

if(a>0){
    cout<<"а is positiv";  //a - положительное
}
else{
    cout<<"а is negativ or zero";  //a - отрицательное или нуль
}

Обратите внимание, что в C/C++ нет ключевого слова then.

Ветвь else можно не писать. Если внутри фигурных скобок пишется только один оператор, то их можно не писать:

if(a>0)
    cout<<"а is positiv";  //a - положительное
...

Следующий оператор - это switch. Вот пример для него:

    int grade;
    cin>>grade;
    switch(grade){
    case 5:
        cout<<"Otlichnick\n"; //отличник
        break;
    case 4:
        cout<<"Choroshyst\n"; //хорошист
        break;
    case 3:
        cout<<"Troechnick\n"; //троечник
        break;
    case 1:
    case 2:
        cout<<"Dvoechnick\n"; //двоечник 
        break;
    default:
        cout<<"Error\n"; //ошибка
    }

Действует он следующим образом: переменная grade сравнивается сначала со значением после первого case (5 в нашем случае). Если выполняется равенство, то выполняются операторы расположенные непосредственно сразу после строки

 case 5:

до первого break;. Если не равно, то grade сравнивается со вторым case (т. е. с 4 в нашем случае) и т. д. Если ни одна из проверок не выполняется, то выполняются операторы после строки

    default:

Ветвь default можно не писать, если не надо.

Обратите внимание на строки

    case 1:
    case 2:
        cout<<"Dvoechnick\n"; //двоечник
        break;
   ...

Здесь после case 1: нет break'а, это значит, что операторы

        cout<<"Dvoechnick\n"; //двоечник
        break;

будут выполняться и при grade равном 1, и при grade равном 2. Поэтому не забывайте писать break там, где это надо. Если забудете, компилятор ничего не скажет, так как синтаксической ошибкой это не является.

В C/C++ существует ещё и конструкция ? ; Ее применение ясно из следующего примера:

b = (k>0)?k:-k;

В данном примере в b запишется модуль числа k. Работает эта конструкция следующим образом: проверяется условие до знака ? (в нашем примере k>0). Если оно истинно, то в качестве результата возвращается значение выражения между ? и : (k в нашем примере). Если же выражение ложно, то возвращается значение выражения после знака двоеточия (-k в нашем примере).