Добавил:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
2
Добавлен:
31.01.2021
Размер:
12.34 Кб
Скачать

Інформатика — Теорія — Оператор циклу з передумовою while    Автори

|

Контакти

|

Підсистема допомоги

|

Методичні вказівки

|

Анотація

|

Назад

   ІнформатикаОператори циклу : Оператор циклу з передумовою whileЗміст курсу

Вступ

Теорія

Оператор циклу з передумовою while

Оператор циклу з постумовою do … while

Цикл for

Практика

Лабораторна робота

Поточна перевірка знань

Використання циклів

Висновки

Версія для друку

  Оператор циклу з передумовою while      Оператор while використовується для організації циклічного виконання оператора або серії операторів, поки виконується певна умова.Синтаксис :while (умова) оператор;

або

while (умова) { тіло циклу;}.

     Коли програма доходить до while, перевіряється логічна умова, що стоїть в дужках, й, якщо ця умова є істинною, тобто, значення вираження в круглих дужках не дорівнює 0, програма виконує оператор або блок операторів у фігурних дужках. Потім керування знову передається на while і історія повторюється. У такий спосіб оператор або блок, що випливає за while, буде виконуватися доти, поки умова не дасть 0 (або не перерверветься цей цикл якимсь іншим способом). Зрозуміло, що після виходу за умовою, виконання програми продовжиться з оператора, що є наступний за циклом.

Наприклад:

int x=0;

while (x<10)

{

     cout<<x<<" ";

     x++;

}

cout<<"\n All done";

     Такий цикл виконається 10 разів, надрукувавши нам значення х від 0 до 9, і тільки після цього керування перейде на другий, наступний за циклом оператор.

     Якщо умова циклу виконується завжди, наприклад

while (1) {...;}

то ми одержуємо нескінченний цикл. Це не обов'язково означає помилку в програмі, подібне роблять і спеціально, організувавши вихід із циклу іншими способами, або розраховуючи, що програма буде працювати "вічно".

     Якщо ж умова дає 0 при першому вході в цикл, наприклад

int x=0;while (x != 0)

{...;}

то оператори в тілі циклу не виконуються жодного разу.

     Цикл закінчується у наступних випадках :- умовний вираз у заголовку приймає нульове значення;- у тілі циклу досягнуто місця, де розташований оператор break;- у тілі циклу виконаний оператор return.     У перших двох випадках керування передається оператору, розташованому безпосередньо за циклом, у третьому випадку активна на той момент функція завершує свою роботу, повертаючи якесь значення.     Нерідкою помилкою програмістів є використання замість оператора порівняння (==) оператора присвоювання (=) у логічній умові. Наприклад, наступний фрагмент створить нескінчений цикл: /* некоректне використання оператору циклу */void main(){     int j=5;     while(j=5) // змінній j присвоїти значення 5      {

          cout<<,j;          +;

     }Компілятор С попередить про некоректне присвоювання в даному випадку, виправити яке особливих труднощів не викличе. В тім, часто такий цикл використовується для перевірки відповіді користувача на питання з програми ("так чи ні ?"). Компілятор С++ призведе до зависання, тому що присвоювання завжди true.

Приклад 1. Фрагмент використання while. cout<<"Підтверджуєте ? Так чи ні ?(y/n)";cin>>ch;while (ch!='y' && ch!='n'){     out<<"\n Відповідайте так чи ні . . (y/n)";     in>>ch;}Тіло циклу почне виконуватися, якщо користувач введе будь-який символ, відмінний від 'у' або 'n'. Цикл виконується доти, доки користувач не введе або 'у' , або 'n'.

Приклад 2. Обчислення факторіалу.void main(){     int n,i;     float fact;     cout<<"\nПрограма обчислення n!.\n";     cout<<"Введiть число n :\n";     cin>>n;     i = 1;     fact = 1;      while (i <= n)

     {

          fact *= i;

          i++;

     }      cout<<"\n n!=="<<fact;

}

Приклад 3. Обчислити значення функції , якщо а=10.3; х∈[-1 , 1]; hx=0.2.

#include <iostream .h>

#include <math.h>

void main ( )

{

     float a, x, y;

     a = 10 . 3 ;

     x = - 1 ;

     while ( x <= 1)

     {

          y = a * x * x - sin(x);

          cout<<"\n x = "<<x<<" y = "<< y ;

          x = x + 0.2;

     }

}

 © 2008 ХНУРЭ, Інформатики, Сінельнікова Т.Ф., informatika@kture.Kharkov.uaРозроблено за допомогою LERSUS

Соседние файлы в папке content