Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Оператор цикла for
Оператор
for (<оператор1>;<выражение>;<оператор2>) <оператор3>; позволяет организовать повторяющийся вычислительный процесс и называется оператором цикла. Как правило, оператор1 и оператор2 являются операторами присваивания или обращениями к функции, а выражение1 - условным выражением. Цикл for удобно использовать в тех случаях, когда заранее известно количество повторений тела цикла, или имеется явно выраженная переменная, управляющая циклом. В этом случае выражение1 вычисляется один раз и задает инициализацию управляющей переменной. Выражение1 является условием завершения цикла, а оператор2 задает приращение управляющей переменной. Например, следующая конструкция
for (i=l; i<n; i++) <оператор>;
является широко распространенной и позволяет «перебрать» первые п натуральных чисел. Из первой строки цикла for можно сразу узнать всю информацию о параметрах цикла: начальное значение переменной i, ее конечное значение, а также насколько увеличивается значение переменной i при каждом выполнении тела цикла. Любой из операторов и выражений в цикле for может быть опущен, хотя точка с запятой при этом должна оставаться. Если отсутствует оператор1 или оператор2, то он просто выпадает из вычислений. Если же отсутствует выражение1, то считается, что оно всегда истинно. Например,цикл for (i=l;;i++) { … } является бесконечным. Существуют разнообразные возможности применения цикла for: 1) можно применять операцию уменьшения для счета в порядке убывания вместо счета в порядке возрастания
for(n=10;n>0;n-) printf("%d \n",n);
2) при желании можно вести счет двойками, десятками и т.д.
for (n=2;n<60;n+=2) printf("%d\n",n);
3) можно вести подсчет при помощи символов, а не только чисел
for(ch='a';ch<='z';ch++) printf("Beличинa кода ASCII для %с равна %d.\n",ch,ch);
4) можно проверить выполнение некоторого произвольного условия, отличного от условия, налагаемого на число итераций
for(num=l;num*num*num<216;num++)
5) можно сделать так, чтобы значение некоторой величины возрастало не в арифметической, а в геометрической прогрессии
for(n=l;n<1500;n*=3) printf("-%d \n",n);
6) в качестве третьего выражения можно использовать любое правильно составленное выражение; какое бы выражение вы ни указали, его значение будет меняться при каждой итерации
for(x= I;у<=75;у=5*(х++)+10) printf("%d, %d\n",x,y);
7) можно даже опустить одно или более выражений (но при этом нельзя опускать символы ";"); необходимо только включить в тело цикла несколько операторов, которые в конце концов приведет к завершению его работы ans=2; for(n=3;ans<=25;) ans=ans*n; Тело цикла for(;;) printfC"* \ n"); будет выполняться бесконечное число раз, поскольку пустое условие всегда считается истинным; 8) первое выражение не обязательно должно инициализировать переменную; вместо этого, например, там мог бы стоять оператор printf() некоторого специального вида; необходимо помнить, что первое выражение вычисляется только один раз перед тем, как остальные части цикла начнут выполняться
for(printf("3апоминайте введенные числа!\n");num = 6;) scanf('"%d",&num); printf("ЭTO как раз то, что я хочу!\n");
в этом фрагменте первое сообщение оказывается выведенным на печать один раз, а затем осуществляется прием вводимых чисел до тех пор, пока не поступит число 6; 9) параметры, входящие в выражения, находящиеся в спецификации цикла, можно изменить при выполнении операций в теле цикла; предположим, например, что есть цикл со спецификацией следующего вида:
for(n=l;n< l000;n+=delta)
и если после нескольких итераций программа решает, что величина параметраdaltaслишком мала или велика, оператор if внутри цикла может изменить значение этого параметра (в диалоговой программе пользователь может изменитьэтот параметр в процессе выполнения цикла). В качестве оператора в теле цикла также может быть цикл. На количество вложений циклов друг в друга ограничений нет. В спецификацию цикла for может быть включено несколько инициализирующих или корректирующих выражений. Например, два вложенных цикла можно записать двумя различными способами: 1. for(i=l;i<10;i++) for(j=l;j<10;j++) <оператор> 2. for(i=l,j=l;i<10,j<10;i++,j++) <оператор> В нижеследующей программе переменные х, у, z изменяются параллельно.
Программа 90 # include<stdio.h> main() { int x,y,z,v,u,zero(); for(x=l,y=l,z=l;x<10;x++,y++,z++) printf("x=%d y=%d z=%d\n", х, y, z); } Результат работы программы: x=l y=l z=l x=2 y=2 z=2 x=3 y=3 z=3 x=4 y=4 z=4 x=5 y=5 z=5 x=6 y=6 z=6 x=7 y=7 z=7 x=8 y=8 z=8 x=9 y=9 z=9 Date: 2015-11-13; view: 395; Нарушение авторских прав |