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

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


Боковая панель

Связь

cikly

Циклы

Циклы: while, do while.

Другое название цикла - конструкция повторения. А, каждое повторение действия - ШАГ ЦИКЛА или ИТЕРАЦИЯ.

Распространенным заблуждением является то, что управляющая переменная может изменяться только на единицу - это не так. Главное, чтобы переменная изменялась любым логичным образом.

Общий синтаксис и порядок выполнения цикла while

while(утверждение)
{
	действие для повторения;
}
  1. Прежде всего осуществляется проверка утверждения.
  2. Если утверждение в круглых скобках истинно, выполнятся действие, находящееся внутри фигурных скобок.
  3. Если утверждение в круглых скобках ложно, программа перейдет на следующую строчку за закрывающейся фигурной скобкой цикла.
  4. Если утверждение в круглых скобках было истинно и действие выполнилось, снова следует проверка утверждения.

Как видите, проверка утверждения повторяется при каждом выполнении цикла. Как только оно перестает быть верным, цикл завершается. Обратите внимания, что если утверждение ложно с самого начала, действие внутри цикла не будет выполнено ни разу.

Если в цикле выполняется только одно действие - фигурные скобки можно не применять.

Общий синтаксис и принцип работы do while

do
{
	действие;
}
while(условие);

Цикл do while похож на цикл while. Разница состоит в том, что в while проверка условия производится сразу же при входе в цикл, и, лишь затем, если условие истинно - выполняется действие. В do while в любом случае сначала выполняется действие и только потом идет проверка условия. Если условие истинно, выполнение действия продолжается, а если нет, то выполнение передается следующему за while оператору.

Другими словами, в отличие от while внутри do while действие хотя бы один раз выполняется.
do while очень удобно применять для проверки вводимых значений пользователем. Код в этом случае удобней. Фигурные скобки тоже не обязательны для одного выражения в цикле

Общий синтаксис и принцип работы for

Оператор for теоретически является полной аналогией while, а практически позволяет организовать цикл с более удобным управлением.

Общий синтаксис и принцип работы конструкции for:

for(инициализация переменной;проверка условия;изменение переменной)
{
	действие;
}
Например

#include <iostream>
void main()
{
	for(int i=1;i<=5;i++)
	{
		cout<<i;
	}
}
Ни одна из частей цикла for не является обязательной.
  • Создание и инициализацию управляющей переменной можно сделать до цикла.
    // здесь создание переменной производится до цикла, а инициализация в цикле.
    int x;
    	for(x=1;x<=100;x++)
    	{
    		cout<<x;
    	}
  • Изменение управляющей переменной можно перенести внутрь тела цикла, как это происходит в while и do while.
    	for(int x=1;x<=100;)
    	{
    		cout<<x;
    		x++;
    	}
  • Условие конструкции также можно пропустить, однако в этом случае оно будет считаться по умолчанию истинным. Таким образом, мы получаем постоянно истинное условие и, как следствие - ВЕЧНЫЙ ЦИКЛ.
    	for(int x=1;;x++)
    	{
    		cout<<x;
    		
    	}
#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);
}

Оператор break и continue

Нередко при работе с циклами, возникает необходимость искусственно прервать выполнение цикла. Для этого используется, уже знакомый вам (по изучению switch), оператор break. Этот оператор должен находиться в теле цикла, в том месте где необходимо сделать остановку.

break может быть использован либо в цикле, либо в операторе switch. Любое другое размещение приводит к ошибке на этапе компиляции.

Оператор continue используется для прерывания текущей итерации цикла и осуществления перехода на следующий шаг. В ряде случаев, такие действия являются необходимыми.

Если выполняется оператор continue, то в зависимости от вида цикла происходит следующее:

  • Циклы while и do while останавливают выполнение шага и переходят к проверке условия.
  • Цикл for также останавливает выполнение шага. Но, сначала переходит к изменению управляющей переменной, а потом уже к проверке условия.



cikly.txt · Последние изменения: 2010/06/20 16:52 (внешнее изменение)