Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Формат оператора цикла с предусловием:
while (выражение) оператор;
Цикл повторяет свое выполнение, пока значение выражения отлично от нуля, т. е. заключенное в нем условие цикла истинно.
В качестве примера использования оператора цикла рассмотрим программу вычисления факториала целого положительного числа N!. Сопоставим программу решения этой задачи, написанную на Паскале, с программой на Си.
Пример 7:
Программа на Паскале
Program Factorial
Var F: Longint; i,N:
Integer;
Begin write (‘N=’);
ReadLn (N);
F:=1; i:=1;
While i < N Do
Begin
F:=F*I;
i:=i+1
End;
WriteLn (N,’! =’, F)
End.
Программа на Си++
// Программа вычисления
факториала
#include <iostream.h>
void main ()
{ long int F;
int i, N;
cout<<”N=”; cin>>N;
F=i=1;
while (i<=N) F=F*i++;
cout<<”\n”<<N<<”!=”<<F;
}
Обратите внимание на операторы в теле цикла. Конечно, и в Си-программе можно было написать два оператора присваивания, объединив их фигурными скобками. Однако использованный способ записи более лаконичен и более характерен для Си. Этот же самый оператор можно было записать еще короче: F*=i++
При практическом использовании этой программы не следует забывать, что факториал - очень быстро растущая функция, и поэтому при определенных значениях N выйдет из диапазона, соответствующего типу long int. Задав для переменной F тип unsigned long, можно сдвинуть эту границу, но этого может оказаться недостаточно. Предлагаем в качестве самостоятельного задания исследовать предельные значения N для двух указанных типов переменной F.
Интересно свойство следующего оператора:
while (1);
Это бесконечный пустой цикл. Использование в качестве выражения константы 1 приводит к тому, что условие повторения цикла все время остается истинным и работа цикла никогда не заканчивается. Тело в этом цикле представляет собой пустой оператор. При исполнении такого оператора программа будет «топтаться на месте».
Дата публикования: 2014-11-02; Прочитано: 341 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!