Операторы языка С++

Операторы выбора if и if…else

Язык С++ обладает исчерпывающим набором конструкций, позволяющим управлять порядком выполнения отдельно взятых ветвей программы. Для осуществления ветвления используются так называемые условные операторы. Две разновидности ветвления: неполная и полная.

Неполная форма ветвления

Синтаксис: if (условие) действие 1;

Оператор  if производит ветвление программы в зависимости от результата проверки некоторого условия на истинность. Условие содержит операторы сравнения: >, <, >=, <=, = =, ! = . Если условие принимает истинное значение, то выполняется действие 1. В противном случае выполнение программы переходит к действию 2. В конструкциях языка С++ операторы могут быть составными. Это означает, что в зависимости от принятого решения выполняется не один, а целый блок операторов. Составной оператор начинается с открывающейся фигурной скобки и заканчивается закрывающейся фигурной скобкой. Все содержимое составного оператора рассматривается компилятором как единый оператор.

Синтаксис с составным оператором 

if (условие) { действие 1;

действие 2;

действие 3;

}   

Полная форма ветвления  

Полная форма ветвления имеет синтаксис: if (условие) действие 1; else действие 2;

Если условие истинно, то выполняется действие 1 с последующим переходом к действию 3.

Если условие ложно, то  выполняется действие 2 с последующим переходом к действию 3

При использовании составного оператора в конструкции  ifelse точка с запятой перед else не ставится. 

if (условие)  {действие 1; 

действие 2;

}

else {действие 3;

 действие 4;

 };

Условие может быть простым и сложным. Для формирования сложного условия используются логические операции ( &&, | |, !). Типичной ошибкой студентов является использование в условных конструкциях оператора присваивания (=) вместо оператора сравнения (= =).

 

Оператор множественного выбора switch

Синтаксис:   switch (ключ)

{ case константное_выражение_1: оператор_1; break;

case константное_выражение_2: оператор_2; break;

case константное_выражение_n: оператор_n; break;

default: оператор_n+1;

};

Оператор switch представляет собой своеобразный «переключатель». Работает следующим образом. На первом этапе анализируется ключ и осуществляется переход к той ветви программы, для которой его значение совпадает с указанным константным_выражением. Далее следует выполнение оператора или группы операторов, пока не встретиться ключевое слово break. Происходит выход из тела оператора switch или не бует достигнут конец блока – закрывающаяся фигурная скобка. Если ключ не совпадет ни с одним константным_выражением , выполняется ветвь, определенная с помощью ключевого слова default.

Правила использования оператора switch:

  1. В качестве ключа может использоваться арифметическое выражение, переменная, имеющие целый тип (вещественный тип не используется).
  2. Константное_выражение – это конкретное число целого типа.
  3. Каждая ветвь должна заканчивается оператором
  4. Фигурные скобки для заключения группы операторов не используются.
  5. Ветвь выполняется тогда, когда ни одна из ветвей не подходит и всегда должна быть последней.
  6. Ветвь не обязательна.

Пример на оператор If (Решение задачи можно посмотреть, скачав файл "Задача-2"):

Известны год и номер месяца рождения человека, а так же год и номер месяца сегодняшнего дня. Определить возраст человека.

#include<iostream.h>
#include<math.h>
#include<conio.h>
main()
{int G, GR, GC;
 int M, MR, MC;
 clrscr();
 cout<<"Vvedite god i mesyatc vashego rogdeniya:"<<'\n';
 cin>>GR>>MR;
 cout<<"Vvedite god i mesyatc segodnyashnego dnya:"<<'\n';
 cin>>GC>>MC;
 cout<<"GR="<<GR<<" GC="<<GC<<'\n';
 cout<<"MR="<<MR<<" MC="<<MC<<'\n';
 if (GC>=GR){G=GC-GR;
         if (MR<=MC) M=MC-MR;
         else {G--; M=MR-MC;}
         cout<<"Vam "<<G<<"let i "<<M<<" mesytcev"<<'\n';
        }
 else cout<<"Vi escho ne rodilis";
 return 0;
}

Пример на оператор Swith (Решение задачи можно посмотреть, скачав файл "Задача-3"):

Игральным картам условно присвоены следующие порядковые номера, в зависимости от их достоинства. "Валет"-11, "Дама"-12, "Король"-13, "Туз"-14, порядковые номера остальных карт соответствуют их названиям (6,7,8,9,10). По заданному номеру карты k(6<=k<=14) определить достоинство соответствующей карты.

#include<iostream.h>
#include<conio.h>
main()
{int k;
 cout<<"Vvedite nomer vashey karti"<<'\n';
 cin>>k;
 switch(k)
 {case 6: cout<<"U vas 6-ka"<<'\n'; break;
  case 7: cout<<"U vas 7-ka"<<'\n'; break;
  case 8: cout<<"U vas 8-ka"<<'\n'; break;
  case 9: cout<<"U vas 9-ka"<<'\n'; break;
  case 10: cout<<"U vas 10-ka"<<'\n'; break;
  case 11: cout<<"U vas Valet"<<'\n'; break;
  case 12: cout<<"U vas Dama"<<'\n'; break;
  case 13: cout<<"U vas Korol"<<'\n'; break;
  case 14: cout<<"U vas Tuz"<<'\n'; break;
  default: cout<<"Neverniy vvod nomera"<<'\n';
 }
 getch();
 return 0;
}

 

Среда, 08.05.2024, 06:31
Приветствую Вас Гость