Хелпикс

Главная

Контакты

Случайная статья





for(i=0; i<n; i++){.};. for(i=0, j=1, k=d*2; i<10; i++, j+=5){<тело цикла>};



for(i=0; i< n; i++){... };

где i и n –целочисленные переменные.

Однако, в отличие от многих других языков, С++ предоставляет гораздо более широкие возможности в написании и исполнении заголовка цикла for. Так, более общая структура заголовка этого цикла имеет вид:

for( < выражение1>; < условие>; < выражение2> ) {< тело цикла> };

 

где< выражение1> - это один или несколько операторов, каким-то образом инициирующих счетчик (например, несколько операторов присваивания, один из которых дает начальное значение счетчику цикла); эти операторы перечисляются через запятую;

< выражение2> - это один или несколько операторов, каким-то образом увеличивающих или уменьшающих значение счетчика (например, несколько присваиваний или условных операций, операций ++ или --, в результате которых значение счетчика получает приращение); эти операторы также перечисляются через запятую.

Например, допустимы такие заголовки:

for(i=0, j=1, k=d*2; i< 10; i++, j+=5){< тело цикла> };

Здесь счетчик – переменная i, так как условие окончания цикла относится к ней: i< 10. Обратите внимание, что присваивания i=0, j=1, k=d*2 выполнятся только один раз, вначале, а присваиванияi++, j+=5, увеличивающие значения i на 1 иj на 5, выполняются на каждом шаге цикла.

for(i=0, j=0; i< n; k! =0? a=b: b=a, j++, i++ ){< телоцикла> };

Здесь счетчик – также переменная i, а < выражение2> содержит три операции – условную k! =0? a=b: b=a, в результате которой получают новое значение либо переменная a, либо переменная b, инкремент j++ и инкремент i++, в результате которых j и счетчик i получают приращение на 1.

Счетчик может быть и не числовым. Пример цикла с символьным счетчиком:

for(ch=’A’; ch< =’Z’; ch++){... };

Здесь счетчикch перебирает буквы (коды букв) латинского алфавита, на каждом шаге прибавляя 1, получает код следующей буквы.

Проиллюстрируем возможности for–циклов в С++ на примере задачи: просуммировать квадраты первых k членов натурального ряда. Способы:

1) for(i=1, S=0; i< =k; i++)S+=i*i; //традиционныйспособ

2) for(i=0, S=0; i< =k; S+=++i*i); //пустоетело, все - взаголовке!

3) for(i=1, S=0; i< =k; )S+=++i*i; //пустоеприращение, оно – втеле!

4) for(i=1, S=0; i< =k; ){j=++i; S+=j*j; }//другойспособ

приращения счетчика в теле цикла

G Обратите внимание, что циклы с пустым телом:

for ( < выражение1>; < условие>; < выражение2> );

тем не менее работают, до тех пор пока истинно условие. В результате этой работы исполняются операторы из < выражения2>, какие-то переменные могут изменить свое значение. Например, в результате исполнения цикла



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.