Цикл с параметром (for)
Цикл for имеет следующий формат записи:
for(инициализация ; услов. выражение ; модификации){ оператор; }
Инициализация служит для объявления и присвоения начальных значений.
Выполняется 1 раз при входе в цикл. Могут входить несколько ОП через запятую.
for( int i = 0, j = 2 ; …
int k, p; for(k = 1, p = 2 ; …
Усл. Выражение определяет условие выполнения цикла: если его результат ≠ 0
(т.е. true), цикл выполняется. Цикл for является циклом с предусловием.
Пример: for(i = 0 ; i < 0 ; i++){…} – не пройдет ни одной итерации.
Модификации обычно служат для изменения параметров цикла. Выполняются после
каждой итерации. Могут содержать несколько ОП через запятую.
Оператор (простой или составной) представляет собой тело цикла.
Любая из частей заголовка for может быть опущена, но ' ; ' должны остаться!
Примеры:
for( ; ; ){ } // пустой бесконечный цикл.
for(int i = 1, s = 0 ; i <= 100 ; i++ )s += i ; // цикл вычисления суммы чисел от 1 до 100.
Другие примеры:
int k ; double eps = 0.00001, s, a[1000] ={1.,0.,0.};
for(k=1;k<=900;k = k+1){ a[k] =a[k−1]/k; } // вычисление последовательности a
k k = 1
!
s=a[0]; for(k=1; k<=900; k++){ s = s+a[k]; if(a[k] k
= Σ 1
!
…
Наиболее неприятная ошибка – "зацикливание".
Рекомендуется предусматривать аварийный выход из цикла (break) по достижении
некоторого количества итераций.
Другие ошибки:
- пропуск инициализации;
- разные имена параметра цикла в УслВыражении и в Модификации;
- повторное описание параметра цикла в Инициализации;
- отсутствие скобок { } в составном ОП;
#include
const int M = 5; // число строк
const int N = 4; // число столбцов
main()
{
int i, j, A[M][N];
for ( i = 0; i < M; i ++ ) // цикл по строкам
for ( j = 0; j < N; j ++ ) // цикл по столбцам строки
{
printf ("A[%d][%d]=", i, j); // подсказка для ввода
scanf ("%d", & A[i][j]); // ввод A[i][j]
}
|
05.10.2015; 05:00 просмотров: 497 |