Лекція № 3
Тема: Умовний оператор. Оператор вибору. Цикли.
План
Умовний оператор If
Оператор вибору
Цикл з передумовою
Цикл з післяумовою
Цикл for
Умовний оператор if
Синтаксис:
if (< вираз>) < оператор 1>
[else < оператор 2 > ]
Тіло умовного оператора if виконується залежно від значення < виразу >. Спочатку обчислюється < вираз>, якщо значення виразу істина (не рівно нулю), то виконується <оператор 1>, якщо ж значення виразу помилково, то виконується <оператор 2>, безпосередньо наступний за ключовим словом else. Якщо значення <виразу> помилкове, але конструкція else опущена, то управління передається на оператор, наступний в програмі за оператором if. Приклад:
if ( і > 0 ) у = х / і;
else x =і;
у = f(x);
В прикладі, якщо і більше нуля, виконується оператор у = х/і;. Якщо і менше або рівно нулю, то значення і приcсвоюється змінній х, а значення, яке повертається функцією f(x), присвоюється змінній у.
Оператор if може бути вкладений в <onepamop1> або <оператор2> іншого оператора if. При вкладенні операторов if рекомендується для ясності групування операторів використовувати фігурні дужки, які обмежують < оператор1 > і <оператор2>.
Якщо ж фігурні дужки відсутні, то компілятор асоціює кожне ключове слово else з найближчим оператором if, у якого відсутня конструкція else.
Оператор вибору
Синтаксис:
switch (<вираз>)
{
[ < оголошення > ]
[case < константний - вираз >: ] [ < оператор > ]
[case < константний - вираз >: ] [<оператор> ]
[default:< оператор > ]
}
Дія:
Оператор-перемикач switch призначений для вибору одного з декількох альтернативних шляхів виконання програми. Виконання оператора-перемикача починається з обчислення значення виразу перемикання (виразу, наступного за ключовим словом switch в круглих дужках). Після цього управління передається одному з < операторів > тіла перемикача. В тілі перемикача містяться конструкції case <константний-вираз>:, які синтаксично є мітки операторів. Константні вирази в даному контексті називаються константами варіанта. Оператор, одержуючий управління, — це той оператор значення константи варіанту якого співпадає із значення виразу перемикання. Значення кожної константи варіанта повинне бути унікальним всередині тіла оператора-перемикача.
Виконання тіла оператора-перемикача switch починається з вибраного таким чином оператора і продовжується до кінця тіла або до тих пір, поки який-небудь оператор не передасть управління за межі тіла. Оператор, наступний за ключовим словом default, виконується, якщо жодна з констант варіанту не рівна значенню виразу перемикання. Якщо ж слово default опущено, то жоден оператор в тілі перемикача не виконується, і управління передається на оператор, наступний за перемикачем в програмі.
В заголовок складового оператора, формуючого тіло оператора switch, можна поміщати оголошення, але ініціалізації, включені в оголошення, не будуть виконані, оскільки при виконанні оператора switch управління безпосередньо передається на виконувані оператори усередині тіла, обходячи рядки, які містять ініціалізацію.
Примеры:
/* пример 1 */
switch (с)
{
case 'A' :
сара + + ;
case 'a' :
lettera + +;
default :
total + + ;
}
/* пример 2 */
switch (і)
{
case -1 :
n + + ;
break;
case 0 :
z + + ;
break;
case 1 :
p+ +;
break;
}
/* пример 3 */
switch (i)
{
case 1:
if (a > 0)
{
case 2:
b = 3;
else
case 3:
k = 0;
}
}
Цикл з передумовою
Цикл while (цикл з передумовою) має вигляд:
while (вираз_умова) тіло_циклу
Як вираз_умова використовується відношення або логічний вираз. Якщо воно істинне, тобто не рівно 0, то тіло циклу виконується до тих пір, поки вираз_умова не стане помилковим. Перевірка істинності виразу здійснюється до кожного виконання тіла циклу (до кожної ітерації). Таким чином, для явно помилкової виразу_умови тіло циклу не виконається жодного разу. Вираз-умова може бути і арифметичним виразом. В цьому випадку цикл виконується, поки значення вираз_умови рівно 0.
Цикл з післяумовою
Цикл do (цикл з постумовою) має вигляд:
do
тіло_циклу
while (вираз_умова);
вираз_умова логічна або арифметичнв, як і в циклі while. В циклі do тіло циклу завжди виконується принаймні один раз. Після кожного виконання тіла циклу перевіряється істинність вираз_умови (на рівність 0), і якщо воно помилкове (тобто рівно 0), то цикл закінчується. В іншому випадку тіло циклу виконується знов.
Цикл For
Цикл for (званий параметричним) має вигляд:
for (вираз_1; вираз _умова; вираз_3) тіло_циклу
Перший і третій вирази в операторі for можуть складатися з декількох виразів, розділених комами. Вираз визначає дії, які виконуються до початку циклу, тобто задає початкові умови для циклу; частіше всього це вираз присвоєння. Вираз_умова - звичайно логічний або арифметичний. Воно визначає умови закінчення або продовження циклу. Якщо він істиний (тобто не рівний 0), то виконується тіло циклу, а потім обчислюється вираз_3. Вираз_3 звичайно задає необхідні для наступної ітерації зміни параметрів або будь-які змінні тіла циклу. Після виконання виразу_3 обчислюється істинність виразу_умови, і все повторюється... Таким чином, вираз обчислюється тільки один раз, а вираз_умова выражение_3 обчислюються після кожного виконання тіла циклу. Цикл продовжується до тих пір, поки не стане помилковим вираз_умова. Будь-яке з трьох, будь-які два або всі три вирази в операторі for можуть бути відсутні, але розділяючі їх символи ";" повинні бути присутні завжди. Якщо відсутній вираз _умова, то вважається, що він є істиний і потрібні спеціальні засоби для виходу з циклу.