Оператор цикла с предусловием и коррекцией for. for (выражение1; выражение2; выражение3) код_цикла;
Общий вид оператора:
for (выражение1; выражение2; выражение3) код_цикла;
Цикл for эквивалентен последовательности инструкций:
выражение1;
while (выражение2)
{
код_цикла ...
выражение3;
}
здесь выражение1 - инициация счетчика (начальное значение), выражение2 -условие продолжения счета, выражение3 - увеличение счетчика. Выражения 1,2 и 3 могут отсутствовать (пустые выражения), но символы «;» опускать нельзя.
Например, для суммирования первых N натуральных чисел можно записать:
sum = 0;
for ( i=1; i<=N; i++) sum+=i;
Операция «запятая» чаще всего используется в операторе for. Она позволяет включать в его спецификацию несколько инициализирующих выражений. Предыдущий пример можно записать в виде:
for ( sum=0 , i=1; i<=N; sum+= i , i++) ;
Оператор for имеет следующие возможности:
- можно вести подсчет с помощью символов, а не только чисел:
for (ch = 'a'; ch<='z'; ch++) ... ;
- можно проверить выполнение некоторого произвольного условия:
for (n = 0; s[i]>='0' && s[i]<'9'; i++) ... ;
или:
for (n = 1; n*n*n <=216; n++) ... ;
Первое выражение не обязательно должно инициализировать переменную. Необходимо только помнить, что первое выражение вычисляется только один раз перед тем, как остальные части начнут выполняться.
for (printf(" вводить числа по порядку! \n"); num!=6;)
scanf("%d", & num);
printf(" последнее число - это то, что нужно.\n");
В этом фрагменте первое сообщение выводится на печать один раз, а затем осуществляется прием вводимых чисел, пока не поступит число 6.
Параметры, входящие в выражения, находящиеся в спецификации цикла можно изменять при выполнении операций в коде цикла.
Например:
for (n = 1; n<1000; n += delta) ... ;
Параметр delta можно менять в процессе выполнения цикла.
Использование условных выражений позволяет во многих случаях значительно упростить программу. Например:
for (i=0;i<n;i++)
printf("%6d%c",a[i],( (i%10==0) || (i==n-1) ) ? '\n' : ’ ‘);
В этом цикле печатаются n элементов массива а по 10 в строке, разделяя каждый столбец одним пробелом и заканчивая каждую строку (включая последнюю) одним символом перевода строки. Символ перевода строки записывается поле каждого десятого и n-го элементов. За всеми остальными - пробел.
Дата добавления: 2015-09-11; просмотров: 636;