
- •Структура программы на языке с
- •Int main(список параметров)
- •Библиотека и компоновка
- •Словарь терминов
- •Выражения
- •Базовые типы данных
- •Void — без значения. На основе этих типов формируются другие типы данных. Имена переменных
- •Переменные
- •Инициализация переменных
- •Константы
- •Строковые константы
- •Специальные символьные константы
- •Оператор присваивания
- •Множественные присваивания
- •Арифметические операции
- •Пробелы и круглые скобки
- •Логические значениия истина (True) и ложь (False) в языке с
- •Условные операторы Оператор if
- •If (выражение) оператор;
- •Int magic; /* магическое число */
- •Int guess; /* попытка игрока */
- •Int magic; /* магическое число */
- •Int guess; /* попытка игрока */
- •If(k) statement 2; /* этот if */
- •Int magic; /* магическое число */
- •Int guess; /* попытка игрока */
- •Лестница if-else-if
- •If (выражение) оператор;
- •If (выражение) оператор;
- •If (выражение) оператор;
- •Оператор if
- •Цикл for
- •Бесконечный цикл
- •Цикл while
- •Цикл do-while
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. После этого процесс выходит из цикла, а управление передается оператору, следующему за ним. В этом примере параметром цикла является переменная х, при каждой итерации она изменяется и проверяется в секции условия цикла.