Розгалужуються називається такий алгоритм, в якому вибирається один з декількох можливих варіантів обчислювального процесу. Кожен подібний шлях називається гілкою алгоритму.
Ознакою разветвляющегося алгоритму є наявність операцій перевірки умови. Найчастіше для перевірки умови використовується умовний оператор if.
Умовний оператор if
Умовний оператор if може використовуватися в формі повної або неповної розвилки.
У разі неповної розвилки якщо Умова істинно, то БлокОперацій1 виконується, якщо Умова помилково, то БлокОперацій1 не виконується.
У разі повної розвилки якщо Умова істинно, то виконується БлокОперацій1. інакше виконується БлокОперацій2.
БлокОперацій може складатися з однієї операції. У цьому випадку наявність фігурних дужок, обмежують блок, необов'язково.
#define _CRT_SECURE_NO_WARNINGS // для можливості використання scanf
#include
int main ()
int k; // оголошуємо цілу змінну k
printf ( "k ="); // виводимо повідомлення
scanf ( ".". k); // вводимо змінну k
if (k> = 5) // якщо k> 5
printf ( ".> = 5". k); // виводимо "ЗНАЧЕННЯ> = 5"
else // інакше
printf ( ". <5". k); // выводим "ЗНАЧЕНИЕ <5"
getchar (); getchar ();
return 0;
>
Оператор if може бути вкладеним.
#define _CRT_SECURE_NO_WARNINGS // для можливості використання scanf
#include
#include
int main () int key; // оголошуємо цілу змінну key
system ( "chcp 1251"); // переходимо в консолі на російську мову
system ( "cls"); // очищаємо вікно консолі
printf ( "Введіть номер пункту, 1 або 2:");
scanf ( ".". key); // вводимо значення змінної key
if (key == 1) // якщо key = 1
printf ( "\ n Обрано перший пункт"); // виводимо повідомлення
else if (key == 2) // інакше якщо key = 2
printf ( "\ n Обрано другий пункт"); // виводимо повідомлення
else // інакше
printf ( "\ n Перший і другий пункти не вибрані"); // виводимо повідомлення
getchar (); getchar ();
return 0;
>
При використанні вкладеної форми оператора if опція else зв'язується з останнім оператором if. Якщо потрібно пов'язати опцію else з попереднім оператором if. внутрішній умовний оператор полягає в фігурні дужки:
#define _CRT_SECURE_NO_WARNINGS // для можливості використання scanf
#include
#include
int main () int key; // оголошуємо цілу змінну key
system ( "chcp 1251"); // переходимо в консолі на російську мову
system ( "cls"); // очищаємо вікно консолі
printf ( "Введіть номер пункту, 1 або 2:");
scanf ( ".". key); // вводимо значення змінної key
if (key! = 1) / если key не равен 1
if (key == 2) // якщо key дорівнює 2
printf ( "\ n Обрано другий пункт"); // виведення повідомлення
> // якщо key - Не 1 і не 2, то нічого не виводиться
else // інакше, якщо key дорівнює 1
printf ( "\ n Обрано перший пункт"); // виведення повідомлення
getchar (); getchar ();
return 0;
>
тернарние операції
Тернарного умовна операція має 3 аргументу і повертає свій другий або третій операнд в залежності від значення логічного виразу, заданого першим операндом. Синтаксис тернарной операції в мові Сі
Умова. Вираз1. Вираженіе2;
Якщо виконується Умова. то тернарного операція повертає Вираз1. в іншому випадку - Вираженіе2.
Тернарние операції, як і операції умови, можуть бути вкладеними. Для поділу вкладених операцій використовуються круглі дужки.
Наведений вище приклад з використанням тернарних операцій можна представити у вигляді
#define _CRT_SECURE_NO_WARNINGS // для можливості використання scanf
#include
#include
int main () int key; // оголошуємо цілу змінну key
system ( "chcp 1251"); // переходимо в консолі на російську мову
system ( "cls"); // очищаємо вікно консолі
printf ( "Введіть номер пункту, 1 або 2:");
scanf ( ".". key); // вводимо значення змінної key
key == 1. printf ( "\ n Обрано перший пункт"):
(Key == 2. printf ( "\ n Обрано другий пункт"):
printf ( "\ n Перший і другий пункти не вибрані"));
getchar (); getchar ();
return 0;
>
Оператор розгалуження switch (оператор множинного вибору)
Оператор if дозволяє здійснити вибір тільки між двома варіантами. Для того, щоб робити вибір одного з декількох варіантів необхідно використовувати вкладений оператор if. З цією ж метою можна використовувати оператор розгалуження switch.
Загальна форма запису
switch (ЦелоеВираженіе)
case Константа1: БлокОперацій1;
break;
case Константа2: БлокОперацій2;
break;
.
case Константаn: БлокОпераційn;
break;
default: БлокОпераційПоУмолчанію;
break;
>
Оператор розгалуження switch виконується наступним чином:
- обчислюється ЦелоеВираженіе в дужках оператора switch;
- отримане значення порівнюється з мітками (Константами) в опціях case. порівняння проводиться до тих пір, поки не буде знайдена мітка, відповідна обчисленому значенню целочисленного вираження;
- виконується БлокОперацій відповідної мітки case;
- якщо відповідна мітка не знайдено, то виконається БлокОпераційПоУмолчанію. описаний в опції default.
Альтернатива default може бути відсутнім, тоді не буде вироблено ніяких дій.
Опція break; здійснює вихід з оператора switch і перехід до наступного за ним оператору. При відсутності опції break будуть виконуватися всі оператори, починаючи з позначеного даної міткою і закінчуючи оператором в опції default.
Константи в опціях case повинні бути цілого типу (можуть бути символами).
Для початківців лише перша глава - «Структура» - зрозуміла, а далі не щасливчики!, Все как-будто звалено в одну купу. Самостійно вивчити запропонований матеріал навряд чи можливо. Радісні відгуки якраз і видно під першим розділом, а далі вони пропадають, видать народ не подужав запропоноване. Взяти хоча б цю главу - «Умовні оператори». Що це таке взагалі, звідки вони взялися. До того ж виявляється їх кілька видів, а тут про це ані слова. Ось з іншого джерела - «Щоб рухатися далі треба чітко уявляти потенційні можливості мови СІ. В його основі лежить базове поняття «оператор». З окремих операторів, як з цеглинок, будуються великі за обсягом програми. »- І далі наводяться 6 груп операторів - оператори присвоювання, оператори виклику функцій, оператори опису, розгалужень, циклів, переходів. Особливо цінно, коли матеріал представлений у вигляді схем, все це дуже добре візуально засвоюється і розуміється.
Лише плюс в тому, що все це барвисто оформлено.
Чим гарний Інтернет-ресурс? Не хочеш - не ходи.
Вам, дійсно, сюди не треба.
А для чайників є платні курси - вперед ...
До речі, слово плутанина пишеться разом!
Так, якщо це не для початківців, а для кого тоді. Навіщо тоді в першому розділі докладно «розжовується» структура. З огляду на, що вона мені і так була зрозуміла, а ви сюди заходите і вчіться, значить ви чайник. І про платні курси вам відомо, а мені ось немає, пройшли что-ли їх вже. І чому особисто ви тут навчилися, чого немає в іншій літературі?
Для кожного розділу не вистачає хоча б невеликого вступу - в 10-15-ти пропозиціях змалювати, що буде розглядатися в цьому розділі і для чого це потрібно. Візьмемо главу "Оператори циклу в мові». Вона починається зі слів «У мові Сі наступні види циклів: ...». Ну, от не згадувалися вони раніше в цій статті і раптом з'явилися несподівано негадано, і в зв'язку з цим знову море питань. А все тому, що немає, наприклад, окремої глави перед цим, де описуються всі оператори відразу і як їх надалі застосовувати. Треба взагалі зробити так, що кожен недосвідчених читач, випадково потрапивши несподівано на будь-яку главу, міг зацікавитися і зрозуміти, що тут відбувається і про що розповідається, а не шукати додаткову літературу. Такі мої побажання наостанок.