Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы_языка_С.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
137.22 Кб
Скачать

If(k) statement 2; /* этот if */

else statement 3; /* ассоциирован с этим else */

}

else statement 4; /* ассоциирован с if(i) */

Последняя фраза else не ассоциирована с if(j) потому, что она находится в другом блоке. Эта фраза else ассоциирована с if(i). Внутренняя фраза else ассоциирована с if(k), потому что этот if — ближайший.

Стандарт С89 допускает 15 уровней вложенности условных операторов, В следующем примере вложенный оператор if используется в модернизированной программе для игры в магическое число. С его помощью играющий получает сообщение о характере ошибки:

/* Магическое число, программа N3. */

#include <stdio.h>

#include <stdlib.h>

int main(void)

{

Int magic; /* магическое число */

Int guess; /* попытка игрока */

magic = rand(); /* генерация магического числа */

printf("Угадай магическое число: ");

scanf("%d", &guess);

if (guess == magic) {

printf("** Верно **");

printf("Магическое число равно %d\n", magic);

}

else {

printf("** Неверно, ");

if(guess > magic) printf("слишком большое\n");

/* вложенный if */

else printf("слишком малое\n");

}

return 0;

}

Лестница if-else-if

В программах часто используется конструкция, которую называют лестницей if-else-if.

Общая форма лестницы имеет вид

If (выражение) оператор;

else

If (выражение) оператор;

else

If (выражение) оператор;

.

.

.

else оператор;

void menu(void)

{

char ch;

printf("1. Проверка правописания\n");

printf("2. Коррекция ошибок\n");

printf("3. Вывод ошибок\n");

printf("Для пропуска нажмите любую клавишу\n");

printf(" Введите Ваш выбор: ");

ch = getchar(); /* чтение клавиш */

Оператор if

Общая форма оператора if следующая:

if (выражение) оператор;

else оператор;

Здесь оператор может быть только одним оператором, блоком операторов или отсутствовать (пустой оператор). Фраза else может вообще отсутствовать.

Цикл for

Во всех процедурных языках программирования циклы for очень похожи. Однако в С этот цикл особенно гибкий и мощный. Общая форма оператора for следующая:

for (инициализация; условие; приращение) оператор;

Цикл for может иметь большое количество вариаций. В наиболее общем виде принцип его работы следующий. Инициализация — это присваивание начального значения переменной, которая называется параметром цикла. Условие представляет собой условное выражение, определяющее, следует ли выполнять оператор цикла (часто его называют телом цикла) в очередной раз. Оператор приращение осуществляет изменение параметра цикла при каждой итерации. Эти три оператора (они называются также секциями оператора for) обязательно разделяются точкой с запятой. Цикл for выполняется, если выражение условие принимает значение ИСТИНА. Если оно хотя бы один раз примет значение ЛОЖЬ, то программа выходит из цикла и выполняется оператор, следующий за телом цикла for.

В следующем примере в цикле for выводятся на экран числа от 1 до 100:

#include <stdio.h>

int main(void)

{

int x;

for(x=1; x <= 100; x++) printf("%d ", x);

return 0;

}

В этом примере параметр цикла х инициализирован числом 1, а затем при каждой итерации сравнивается с числом 100. Пока переменная х меньше 100, вызывается функция printf() и цикл повторяется. При этом х увеличивается на 1 и опять проверяется условие цикла х <= 100. Процесс повторяется, пока переменная х не станет больше 100. После этого процесс выходит из цикла, а управление передается оператору, следующему за ним. В этом примере параметром цикла является переменная х, при каждой итерации она изменяется и проверяется в секции условия цикла.