Оператор с предусловием while
Цикл с предусловием реализует структурную схему, приведенную на рис. 7.1, а, и имеет вид
while (выражение)
код цикла;
Выражение определяет условие повторения кода цикла, представленного простым или составным оператором.
Если выражение в скобках – истина (не равно 0), то выполняется код цикла. Это повторяется до тех пор, пока выражение не примет значение 0 (ложь). В этом случае происходит выход из цикла и выполняется оператор, следующий за конструкцией while. Если выражение в скобках изначально ложно (т.е. равно 0), то цикл не выполнится ни разу.
Код цикла может включать любое количество операторов, связанных с конструкцией while, которые нужно заключить в фигурные скобки (организовать блок), если их более одного.
Переменные, изменяющиеся в коде цикла и используемые при проверке условия продолжения, называются параметрами цикла. Целочисленные параметры цикла, изменяющиеся с постоянным шагом на каждой итерации, называются счетчиками цикла.
Начальные установки могут явно не присутствовать в программе, их смысл состоит в том, чтобы до входа в цикл задать значения переменным, которые в этом цикле используются.
Рис. 7.1. Схемы операторов цикла:
а – цикл с предусловием; б – цикл с постусловием
Цикл завершается, если условие его продолжения не выполняется. Возможно принудительное завершение как текущей итерации, так и цикла в целом.
Для этого используют оператор continue – переход к следующей итерации цикла и break – выход из цикла (см. разд. 9.2, 9.3).
Передавать управление извне внутрь цикла не рекомендуется, так как получите непредсказуемый результат.
Например, необходимо сосчитать количество символов в строке. Предполагается, что входной поток настроен на начало строки. Тогда подсчет символов выполняется следующим образом:
int count = 0;
char ch = getchar();
while ( ch != \n') {
count++;
ch = getchar();
}
В языке Си в выражение, управляющее циклом, можно включить и оператор присваивания переменной ch, например:
char ch;
int count = 0;
while (( ch=getchar()) != '\n') count++;
Как видим, переменная ch применяется только в выражении, управляющем циклом, поэтому от ch можно отказаться:
int count = 0;
while ( getchar() !='\n') count ++;
Дата добавления: 2015-09-11; просмотров: 800;