Цикл while
Синтаксис: while (УсловиеВыполнения) { // Инструкции цикла (тело цикла) } Сначала проверяется значение выражения УсловиеВылолнения Если оно не равно нулю, т.е. условие истинно, то выполняйте инструкции цикла (тело цикла). Затем снова проверяется значение выражения УсловиеВыполнения, и если оно не равно нулю, инструкции цикла выполняются еще раз. И так до тех пор, пока значение выражения УсловиеВыполнения не станет равным нулю. · число повторений инструкций цикла while определяется ходом выполнения программы; · инструкции цикла while выполняются до тех пор, пока значение выражения, записанного после слова while,не станет ложным (равным нулю); · после слова while надо записывать условие выполнения инструкций цикла; · для завершения цикла while в теле цикла обязательно должны быть инструкции, выполнение которых влияет на условие завершения цикла; · цикл while — это цикл с предусловием, т. е. возможна ситуация, при которой инструкции тела цикла ни разу не будут выполнены; · цикл while,как правило, используется для организации приближенных вычислений, в задачах поиска и обработки данных, вводимых с клавиатуры или из файла. Пример 3: Программа выводит на экран числа от 1 до 10. #include <stdio.h> void main() { int counter =1; /* инициализация */
while (counter <= 10) { /*условие повторения*/ printf ("%d\n", counter); ++counter; /* приращение */ } } Пример 4: Напишите программу, которая суммирует последовательность целых чисел. Предположите, что первое целое число, считываемое с помощью scanf, определяет количество значений, которое осталось ввести. Ваша программа должна считывать только одно значение при каждом выполнении scanf. Типичной входной последовательностью могло бы быть 5 100 200 300 400 500 где 5 указывает, что должны суммироваться последующие 5 значений. #include <stdio.h> void main() { int n,i,s=0,ch; //с помощью цикла for printf ("Введите число "); scanf ("%d",&n); i=1; s=0; while (i<=n) { scanf ("%d",&ch); s+=ch; i++; } printf ("Сумма равна %d\n", s); } Пример 5. Написать программу, которая выводит таблицу квадратов первых n целых положительных четных чисел. Количество чисел должно вводиться во время работы программы. После вывода результата на экран снова должен появляться запрос количества чисел n, до тех пор, пока пользователь не введет 0 (когда введен 0, осуществляется выход из программы). #include<stdio.h> void main () { int n,i; printf ("Vvedite n "); scanf ("%d",&n); while (n!=0) { for (i=2;i<=n;i+=2) printf (" %d %d\n",i,i*i); printf ("Vvedite n"); scanf ("%d",&n); } } Пример 6. Программа выводит на экран меню, в котором пользователь может выбрать одно из следующих действий введя соответствующее число: подсчитать сумму двух чисел, подсчитать разность двух чисел, выйти из программы. Отличие данного примера от примера 5 заключается в том, что программа будет выводить запрос выбора не один раз (как в примере 5), а до тех пор, пока пользователь не выберет выход из программы. #include<stdio.h> void main () { int n, a,b; while (1) { //бесконечный цикл, условие цикла всегда верно printf ("Меню:\n”); printf ("1 – подсчет суммы двух чисел\n "); printf ("2 – подсчет разности двух чисел\n "); printf ("3 – выход из программы\n "); printf ("Ваш выбор? \n "); scanf (“%d”, &n); switch (n) { case 1: printf ("Введите два числа\n "); scanf( "%d%d", &a, &b ); printf ("Сумма равна %d\n ", a+b); break; case 2: printf ("Введите два числа\n "); scanf( "%d%d", &a, &b ); printf ("Разность равна %d\n ", a-b); break; case 3: return; break; default: printf ("Heвернoe значение."); } } }
|