Оператор цикла с постусловием do … while
Цикл с постусловием – цикл, в котором условие проверяется после выполнения тела цикла. Отсюда следует, что тело всегда выполняется хотя бы один раз.
Оператор цикла do...while имеет следующий синтаксис:
do
тело_цикла;
while (выражение-условие)
выражение-условие – это выражение, определяющее условие, при котором тело цикла будет выполняться. В качестве выражения-условия чаще всего используется отношение или логическое выражение.
Схема выполнения оператора do...while следующая:
● выполняется тело_цикла;
● вычисляется выражение-условие;
● если значение выражения-условия равно нулю, то выполнение оператора do...while заканчивается и выполняется следующий по порядку оператор. Если значение выражения-условия не равно нулю, то выполнение оператора цикла do...while продолжается с пункта 1 (т.е. выполняется тело_цикла и все повторяется…).
В операторе do...while проверка условия происходит после выполнения операторов, образующих тело цикла. Оператор do...while удобно использовать в ситуациях, когда цикл должен выполниться хотя бы один раз.
Чтобы прервать выполнение цикла до того, как условие станет ложным, можно использовать оператор break.
При построении цикла do...while необходимо включить в тело цикла какие-либо конструкции, изменяющие величину проверяемого выражения-условия так, чтобы в конце концов оно стало равным нулю. В противном случае цикл будет бесконечным.
Например:
int i, s;
i=2;
do {
printf("Добрый день!"); }
while(i < 5); /*цикл будет выполняться бесконечно*/
int i, s;
i=2;
do {
printf("Добрый день!");
i=i+1; }
while(i < 5); /*цикл будет выполнен 3 раза*/
Пример 1: Вычисления квадратов чисел от 1 до 9.
#include <stdio.h>
void main() {
int i, b;
i=1;
do {
b=i*i;
printf("\n %2d в квадрате = %3d", i, b);
i++; }
while (i<10);
}
Пример 2: Программа для печати фрагмента таблицы ASCII (от 32-го символа до 126-го).
#include <stdio.h>
void main() {
int number;
char character;
number = 32;
do {
character = number;
printf("Символ %c имеет код %d (дес.) или
%x (шестнд.)\n", character,character,character);
number++; }
while (number <= 126);
}
Пример 3: Вычислить S = 1 + 2 + 3 + 4 + … + n.
#include <iostream.h>
void main() {
int n,i,s=0;
cout<<"\nВведите n=";
cin>>n;
if(n<=0) {
cout<<"\n n<=0";
return;
}
i=1;
do {
s+=i;
i++; }
while (i<=n);
cout<<"\nS="<<s<<"\n";
}
Задания
1.Составьте программу для решения задачи. Дано число а (1 < а < 1,5). Из чисел напечатать те, которые не меньше а.
2.Составьте программу для решения задачи. Дана непустая последовательность целых чисел, оканчивающаяся числом 100. Определить, есть ли в последовательности число 77? Если имеются несколько таких чисел, то определить порядковый номер первого из них.
3.Составьте программу для решения задачи. Даны целые числа а и b (а > b). Определить результат целочисленного деления а на b, не используя стандартную операцию целочисленного деления.
4.Дано натуральное число. Найдите сумму его цифр.
Домашние задания
1.Наберите коды программ из Примеров 1, 2 и 3. Сохраните коды программ. Выполните компиляцию и запуск программ. Введите свои данные в качестве входных.
2.Составьте программу для решения задачи. Дано число а (1 < а < 1,5). Среди чисел найти первое, меньшее а.
3.Составьте программу для решения задачи. Дана последовательность натуральных чисел a1, a2, … a20. Определить, есть ли в последовательности хотя бы одно число, оканчивающее цифрой 7? В случае положительного ответа определить порядковый номер первого из них.
4.Составьте программу для решения задачи. Даны целые числа а и b (а > b). Определить результат остатка от деления а на b, не используя стандартную операцию вычисления остатка.
Дата добавления: 2015-02-16; просмотров: 913;