Инструменты пользователя

Инструменты сайта


cikly

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

cikly [2010/06/20 16:52] (текущий)
Строка 1: Строка 1:
 +====== Циклы ======
 +Циклы: while, do while.
 +
 +Другое название цикла - конструкция повторения. А, каждое повторение действия - ШАГ ЦИКЛА или ИТЕРАЦИЯ.
 +
 +**Распространенным заблуждением является то, что управляющая переменная может изменяться только на единицу - это не так. Главное,​ чтобы переменная изменялась любым логичным образом.**
 +
 +====== Общий синтаксис и порядок выполнения цикла while ======
 +<​file>​
 +while(утверждение)
 +{
 + действие для повторения;​
 +}
 +</​file>​
 +  - Прежде всего осуществляется проверка утверждения.
 +  - Если утверждение в круглых скобках истинно,​ выполнятся действие,​ находящееся внутри фигурных скобок.
 +  - Если утверждение в круглых скобках ложно, программа перейдет на следующую строчку за закрывающейся фигурной скобкой цикла.
 +  - Если утверждение в круглых скобках было истинно и действие выполнилось,​ снова следует проверка утверждения.
 +
 +Как видите,​ проверка утверждения повторяется при каждом выполнении цикла. Как только оно перестает быть верным,​ цикл завершается. Обратите внимания,​ что если утверждение ложно с самого начала,​ действие внутри цикла не будет выполнено ни разу.
 +<note tip>​Если в цикле выполняется только одно действие - фигурные скобки можно не применять.</​note>​
 +====== Общий синтаксис и принцип работы do while ======
 +<​file>​
 +do
 +{
 + действие;​
 +}
 +while(условие);​
 +</​file>​
 +
 +Цикл do while похож на цикл while. Разница состоит в том, что в while проверка условия производится сразу же при входе в цикл, и, лишь затем, если условие истинно - выполняется действие. В do while в любом случае сначала выполняется действие и только потом идет проверка условия. Если условие истинно,​ выполнение действия продолжается,​ а если нет, то выполнение передается следующему за while оператору. <note tip>​Другими словами,​ в отличие от while внутри do while действие хотя бы один раз выполняется.</​note><​note tip>do while очень удобно применять для проверки вводимых значений пользователем. Код в этом случае удобней. Фигурные скобки тоже не обязательны для одного выражения в цикле</​note>​
 +====== Общий синтаксис и принцип работы for ======
 +Оператор **for** теоретически является полной аналогией while, а практически позволяет организовать цикл с более удобным управлением.
 +
 +Общий синтаксис и принцип работы конструкции for:<​file>​
 +for(инициализация переменной;​проверка условия;​изменение переменной)
 +{
 + действие;​
 +}
 +Например
 +
 +#include <​iostream>​
 +void main()
 +{
 + for(int i=1;​i<​=5;​i++)
 + {
 + cout<<​i;​
 + }
 +}
 +</​file>​
 +<note tip>Ни одна из частей цикла for не является обязательной.</​note>​
 +  * Создание и инициализацию управляющей переменной можно сделать до цикла.<​file>​
 +// здесь создание переменной производится до цикла, а инициализация в цикле.
 +int x;
 + for(x=1;​x<​=100;​x++)
 + {
 + cout<<​x;​
 + }</​file>​
 +  * Изменение управляющей переменной можно перенести внутрь тела цикла, как это происходит в while и do while.<​file>​
 + for(int x=1;​x<​=100;​)
 + {
 + cout<<​x;​
 + x++;
 + }
 +</​file>​
 +  * Условие конструкции также можно пропустить,​ однако в этом случае оно будет считаться по умолчанию истинным. Таким образом,​ мы получаем постоянно истинное условие и, как следствие - **ВЕЧНЫЙ ЦИКЛ**.<​file>​
 +
 + for(int x=1;;x++)
 + {
 + cout<<​x;​
 +
 + }</​file>​
 +
 +<​file>​
 +#include <​stdlib.h>​
 +#include <​stdio.h>​
 +/​*Программа отображает символы и их соответствующие символы из таблицы ASCII.*/
 +int main() {
 +    unsigned char a;
 +    for (a=32;​a<​128;​a++)
 +        printf("​%3d = '​%c''​\n",​a,​a);​
 +
 +    return (EXIT_SUCCESS);​
 +}
 +</​file>​
 +====== Оператор break и continue ======
 +Нередко при работе с циклами,​ возникает необходимость искусственно прервать выполнение цикла. Для этого используется,​ уже знакомый вам (по изучению switch), **оператор break**. Этот оператор должен находиться в теле цикла, в том месте где необходимо сделать остановку.<​note important>​break может быть использован либо в цикле, либо в операторе switch. Любое другое размещение приводит к ошибке на этапе компиляции.</​note>​
 +**Оператор continue** используется для прерывания текущей итерации цикла и осуществления перехода на следующий шаг. В ряде случаев,​ такие действия являются необходимыми.
 +
 +Если выполняется оператор continue, то в зависимости от вида цикла происходит следующее:​
 +  * Циклы while и do while останавливают выполнение шага и переходят к проверке условия.
 +  * Цикл for также останавливает выполнение шага. Но, сначала переходит к изменению управляющей переменной,​ а потом уже к проверке условия.
  
cikly.txt · Последние изменения: 2010/06/20 16:52 (внешнее изменение)