Як працює умовний оператор

Блок-схема виконання оператора if..else приведена на рис. 3.2.

Як працює умовний оператор

Мал. 3.2. Виконання оператора if..else

У тілі оператора вибору ifпредполагается наявність тільки одного оператора. Щоб включити в тіло ifнесколько операторів, потрібно укласти цей набір операторів в фігурні дужки (<и>). Сукупність операторів, що містяться всередині пари фігурних дужок, називається складовим оператором або блоком. Складовою оператор може бути поміщений в будь-яке місце програми, де може стояти простий оператор.

Наступний приклад містить складовою оператор в галузі else оператора if..else.

if (grade> = 60)

cout <<“Зачет”;

cout <<“Незачет”;

cout <<“Вам следует снова пройти этот курс”;

Зверніть увагу на фігурні дужки, в які укладені обидва оператори в реченні else. Ці дужки важливі. Без цих дужок оператор

Cout <<“Вам следует снова пройти этот курс”;

виявився б поза тілом els e-гілки оператора if і виконувався б незалежно від того, менше 60 значення gradeілі немає.

Оператор множинного вибору switch

У деяких ситуаціях застосування оператора if може привести до виникнення дуже складних конструкцій з великою кількістю вкладених операторів. Мова C ++ має альтернативним рішенням цієї проблеми - оператором switch. В отли-чие від оператора if, він дозволяє перевіряти відразу кілька умов, організовуючи гілок-ня програми більш ефективно. Оператор switch повинен виглядати так:

case значення1: оператор; break;

case значення2: оператор; break;

case значеніеN: оператор; break;
default: оператор;

Вираз в дужках оператора switch є будь-яке припустиме ви-ражение мови C ++, а оператор - це будь-який допустимий оператор або блок опера-торів. Вираз повертає (або може бути однозначно перетворено в) целочіс-ленне значення. Тому використання логічних операцій або виразів порівняння тут неприпустимо.

Перехід здійснюється до тієї рядку оператора switch, де після ключового сло-ва case знаходиться значення, відповідне результату виразу. З цього рядка виконання операторів продовжиться до тих пір, поки оператор switch не завершена або поки не зустрінеться оператор break. Якщо жодне значення case що не відповідають-яття результату виразу, виконуються оператори, такі за ключовим словом default, а в разі його відсутності оператор switch завершується. Блок-схема виконання оператора if..else приведена на рис. 3.3.

Як працює умовний оператор

Мал. 3.3. Виконання оператора if..else

Приклад використання оператора switch приведений в лістингу 3.3.

Лістинг 3.3. Приклад використання оператора switch

// DemoSwitch.cpp. Defines the entry point for the console application.

using namespace std;

cout <<"Enter a number between 1 and 5. ";

cin >> number;

case 5: cout <<"Good job! " <

case 4: cout <<"Nice Pick! " <

case 3: cout <<"Exellent! " <

case 2: cout <<"Masterful! " <

case 1: cout <<"Incredible!" <

default: cout <<"Too large! "; break;

cout <

cin >> number;

Оператор циклу while

За допомогою даного оператора реалізується цикл, який виконується до тих пір, поки істинно умова циклу. Синтаксис цього оператора наступний:

Наведемо приклад реалізації даного циклу, в якому виконується підсумовування елементів ряду S = 0 + 1 + 2 + 3. поки S

В даному прикладі реалізується цикл while з умовою i

while ((S = S + i ++)

printf ( "Ви ввели значення. \ n", num);

> Даний цикл буде працювати, поки користувач вводить цілочисельні значення і зупиняється, якщо введена буква або дійсне число. Слід зазначити, що цикл while можна примусово завершити навіть при щирому умови циклу. Це досягається шляхом використання оператора break. Перепишемо попередній приклад так, щоб цикл завершувався, якщо користувач введе число 0.

> Цикл завершується відразу після використання оператора break, тобто в наведеному прикладі, при введенні з клавіатури нуля функція printf () виконуватися не буде і програма перейде на наступний оператор після while. Того ж результату можна добитися, якщо використовувати складене умова в циклі:

while (scanf ( ".", mun) == 1 num! = 0)

printf ( "Ви ввели значення. \ n", num);

Працює ця конструкція наступним чином.

1.Сначала перевіряється умова в дужках.
1.1 Якщо воно істинне, то виконується тіло циклу. (Оператор). І програма знову переходить до перевірки умови.
Нагадаю, що тіло циклу завжди складається з одного оператора. І якщо нам потрібно використовувати кілька операторів, то як і в випадку з конструкцією if-else або циклом for, застосовується складовою оператор.
1.2 Якщо умова помилкова, то виконання циклічної конструкції закінчується і програма виконується далі.

Таким чином, в якості умови можливі такі ж конструкції, що і в операторі if.

Багатовимірний масив - це масив, що має кілька вимірів.

Кожен вимір виділяється окремим парою квадратних дужок і характеризується власним діапазоном або розміром (кількістю елементів):

опис-діапазону-2]. [Визначення діапазону-N];

Матриця - це масив з двома вимірами (двовимірний).

Матриця фактично являє собою двовимірну таблицю, перший вимір якої вважають, наприклад, рядком, а друге - стовпцем.

double mtx [10] [20];

задає таблицю розміром 10x20 елементів (дрібних значень).

При доступі до елементу багатовимірного масиву значення індексів перераховують в квадратних дужках - кожен індекс в своїх дужках. наприклад:

double mtx [10] [20];

Інкремента і декремента.

Оператор инкремента ++ додає до операнду 1, а оператор декремента - віднімає 1. Таким чином,

x = x + 1; еквівалентно x ++;

і x = x - 1; еквівалентно x--;

Обидва оператора, і инкремента і декремента, можуть як передувати операнду (префікс), так і слідувати за операндом (постфікси). наприклад,

x = x + 1; може бути записано і як

++x; // префиксная форма і як

х ++; // Постфіксний форма

У наведеному прикладі байдуже, чи використовується інкремент як префікс або як постфікси. Однак якщо інкремент або декремент використовується як частина більшого виразу, виникає важлива відмінність. Якщо оператор інкремента або декремента передує операнду, С ++ виконує операцію до отримання значення операнда з метою використання його в решти виразу. Якщо ж оператор слід за операндом, С ++ спочатку отримає значення операнда, і лише потім виконає його інкремент або декремент. Розглянемо такий приклад:

В цьому випадку у отримає значення 11. Проте, якщо написати ці рядки інакше:

y = x ++; значення у виявиться рівним 10. В обох випадках кінцеве значення х буде 11; різниця в тому, коли це станеться.

Наступна програма демонструє використання операторів інкремента і декремента:

Лістинг 3.1. Приклад використання операторів інкремента і декремента

// IncrAndDecr.cpp. Defines the entry point for the console application.

// Код програми з операторами инкремента і декремента

using namespace std;

cout <<"At the beginning: \n" ;

cout <<"i = " <

cout <<"j = " <

cout <<"After command n=i++ :\n";

n = i ++; // Тепер n = 3, a i = 4

cout <<"n = " <

cout <<"i = " <

cout <<" After command m=++j :\n";

m = ++ j; // Значення змінних m = 4 і j = 4

cout <<"m = " <

cout <<"j = " <

cout <<" After command n= (--i)*(i--) :\n";

n = (- i) * (i -); // Тепер n = 9, a i = 2

cout <<"n = " <

cout <<"i = " <

cout <<" After command m=(--j)*(--j) :\n";

m = (--j) * (- j); // Тепер m = 4, a j = 2

cout <<"m = " <

cout <<"j = " <

cout <<" After command n= (--i) * (i++) :\n";

n = (--i) * (i ++); // Тепер n = l, a i = 2

cout <<"n = " <

cout <<"i = " <

cout <<" After command m= (j--) * ( ++j ) :\n" ;

m = (j--) * (++ j); // Тепер m = 9, a j = 2

cout <<"m = " <

cout <<"j = " <

cout <<" After command n= ( --i) * (++i) :\n";

n = (--i) * (++ i); // Тепер n = 4, a i = 2

cout <<"n = " <

cout <<"i = " <

Т # 1201; ра # 1179; тилар жаріялау сінтаксісі айнималилар жаріялау сінтаксісіне # 1 201; # 1179; сас, айирмашили # 1 "и const з # 1257; зінен басталади: const тип т # 1 201; ра # 1179; ти ати = м # 1241; ні;

Сімволди # 1179; константа 2 бірлік Тирнов # 1179; шани # 1 "отрасина жазилади 'a'. Жолди # 1179; т # +1201; ра # 1179; ти 2 # 1179; остирна # 1179; шани # 1 "арасина жазилади" a ". Т # 1201; ра # 1179; тилар: 1) літералди # 1179 ;,

2) Атал # 1 "ан болипой б # 1257; лінеді.

Константи є осередки пам'яті, в яких зберігаються дані. Є кілька видів констант. Нижче наводиться коротке зведення апаратних характеристик, які впливають на їх размери.І так на відміну від змінних константи не змінюються. Створювану константу потрібно форматувати, оскільки потім їй вже не можна присвоїти нове значення. Існує в мові C ++ два типи констант: літеральние і символьні.

Літеральна константа - це значення, безпосередньо вводиться в самій программе.1 intcoder = 14;

Мінлива coder типу int, а число 14 є літеральної константою.

Ціла константа, що складається з послідовності цифр, вважається восьмеричної, якщо вона починається з 0 (цифри нуль), і десяткової в іншому випадку. Цифри 8 і 9 не є вісімковими цифрами.

Послідовність цифр, якої передує 0х або 0Х, сприймається як шістнадцяткове ціле.

У шістнадцятиричні цифри входять букви від а чи А до fілі F, що мають значення від 10 до 15.

Десяткова константа, значення якої перевищує найбільшу машинне ціле зі знаком, вважається довгою (long); восьмерична і шістнадцяткова константа, значення якої перевищує найбільшу машинне ціле зі знаком, вважається long; в інших випадках цілі константи вважаються int.

Явно задані довгі константи

Десяткова, вісімкова або шестнадцатеричная константа, за якою безпосередньо стоїть l (латинська буква «ель») або L, вважається довгою константою.

Схожі статті