Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
m3444.doc
Скачиваний:
9
Добавлен:
19.04.2015
Размер:
547.84 Кб
Скачать

2.3 Оператор умовної передачі керуванняif

Цей оператор має дві форми написання. Перша з них має вигляд

If (вираз)

{список операторів_1;}

[else { список операторів_2;}]

оператор_3;

При виконанні спочатку обчислюється вираз у круглих дужках (дужки обов'язкові!). Якщо результатом обчислення є "істинно", то наступним виконується список операторів_1, а потім – оператор_3 і т. д.

Якщо ж результат – "хибно", то список операторів_1 пропускається. Виконується список операторів_2, потім оператор_3 і т. д.

Приклад. Припустимо, що потрібно обчислити значення. Перед обчисленням необхідно перевірити ОДЗ функції, якщо аргументи задовольняють умови ОДЗ, обчислюємо значення функції та виводимо її значення на друк, в іншому випадку – друкуємо повідомлення про неможливість проведення обчислень. У нашому прикладі ОДЗ:a - cos(x)≠0 (знаменник не може дорівнювати нулю). Відповідний фрагмент програми має вигляд

if (a - cos(x) )

{

y=1/(a-cos(x));

printf("x=%f y=%f\n", x, y);

}

else

printf("Дiлення на нуль при x=%f \n", x);

puts("Кiнець");

Тут у круглих дужках стоїть вираз a-cos(x). Якщо результат його обчислення не дорівнює нулю, то він сприймається як "істинно". Тоді виконується список операторів_1, що складається із двох простих операторів: обчислення значення у і виведення на екран його значення за допомогою функції printf( ).

У випадку якщо a-cos(x) дорівнює нулю, результат сприймається як "хибно". Буде виведено повідомлення: "Ділення на нуль при х = число".

Потім, у будь-якому разі, буде за допомогою функції puts( ) виведено повідомлення "кінець".

За допомогою оператора if можна здійснювати розгалуження на довільну кількість напрямків. Для цього після else необхідно розмістити ще один оператор if.

Наприклад, вираз для обчислення функції y має такий вигляд:

Фрагмент програми, що реалізує необхідні обчислення, має вигляд

if(x<0)

y=x*x;

else

if(x>0)

y=sqrt(x);

else

y=0;

2.4 Типові помилки програмування

1 Відсутні круглі дужки у записі умови. Ця помилка розпізнається на етапі компіляції і супроводжується повідомленням – «Error: If statement missing ...».

2 Відразу після круглих дужок із записом умови стоїть зайва крапка з комою. За відсутності блока else така помилка не буде розпізнана компілятором і буде сприйнята як порожній оператор if. Крапка з комою після ключового слова else також є синтаксичною помилкою.

3 Перевірка на рівність двох змінних записано за допомогою одиночного знака «=» замість подвійного знака «= =». Компілятор вважатиме такий запис операцією присвоювання, що призведе до неправильної роботи програми. Повідомлення про помилку в цьому випадку не видається, однак з'являється попередження «Warning: Possibly incorrect assignment».

4 Частково перекриваються блоки if та / або else двох вкладених один в одного умовних операторів. Наслідки цієї помилки зазвичай важко передбачувані. Іноді це призводить до повідомлення вигляду «Error: Misplaced else».

5 Неправильний запис складеної умови. Можливі варіанти помилок – порушення парності дужок, помилки в знаках логічних операцій І, АБО, НЕ.

2.5 Оператор розриву break

Цей оператор служить для дострокового виходу з оператора перемикання switch, а також із циклів (while, do while, for – буде розглянуто пізніше). Оператор break використовується для того, щоб закінчити виконання певної гілки case усередині оператора switch і перейти до кінця оператора switch.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]