Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

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



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

Синтаксис:

while (<логічний вираз>)

оператор;

Рис. 1.7. Синтаксис оператора while

Цикл закінчується у наступних випадках:

1. умовний вираз у заголовку приймає нульове значення;

2. у тілі циклу досягнуто місця, де розташований оператор break;

3. у тілі циклу виконаний оператор return;

У перших двох випадках керування передається оператору, розташованому безпосередньо за циклом, у третьому випадку активна на той момент функція завершує свою роботу, повертаючи якесь значення.

Знову ж таки нерідкою помилкою програмістів, що працювали раніше на Паскалі, є використання замість оператора порівняння (==) оператора присвоювання (=). Наприклад, наступний фрагмент створить нескінчений цикл:

/* некоректне використання оператору циклу */

int main(void)

{

int j=5;

while(j=5) /* змінній j присвоїти значення 5 */

{

printf("%d\n",j);

j++;

}

}

Компілятор Сі попередить про некоректне присвоювання в даному випадку, виправити яке особливих труднощів не викличе.

Втім, часто такий цикл використовується для перевірки відповіді користувача на питання з програми ("так чи ні?"):

/* фрагмент використання while */

printf ("Підтверджуєте? Так чи ні?(y/n);");

scanf("%c",&ch);

while (ch!='y' && ch!='n')

{

printf("\n Відповідайте так чи ні.. (y/n);");

scanf("%c",&ch);

}

Тіло циклу почне виконуватися, якщо користувач введе будь-який символ, відмінний від у або n. Цикл виконується доти, доки користувач не введе або 'у', або 'n'.

Цікаво розглянути й наступний приклад, що застосовує оператор while у функції підрахунку факторіалу:

long factorial(int number)

{

long total;

total=number;

while (--number)

total*=number;

return total;

}

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

Оператор do…while використовується для організації циклічного виконання оператора або серії операторів, які називаються тілом циклу, до тих пір, поки умова не стане хибною.

Синтаксис:

do

<оператор>;

while (<логічний_вираз>);

Рис. 1.8. Синтаксис оператора do … while

Ситуації, що призводять до виходу з циклу, аналогічні наведеним для циклу while із передумовою. Характерним є те, що тіло циклу виконається хоча б один раз. На відміну від Паскаля, в якому цикл з постумовою repeat operator until умова виконується, поки умова невірна, цикл do... while навпаки припиняє виконання, коли умовний вираз обертається в нуль (стає невірним).

Приклад 1.

printf ("Підтверджуєте? Так чи ні?(y/n);");

do

scanf("%c",&ch);

while (ch!='y' && ch!='n')

Приклад 2.

#include<stdio.h>

#include<conio.h>

void main()

{

int n,i;

float fact;

printf("Програма обчислення n!.\n");

printf("Введiть число n:\n");

scanf("%d",&n);

i = 1;

fact = 1;

do {

fact *= i;

i++;

} while (i <= n);

printf("n!==%g",fact);

}





Дата публикования: 2015-01-23; Прочитано: 352 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...