Три типа циклов в C
В языке C существуют три основных типа циклов: for, while и do-while. Все они позволяют многократно выполнять блок кода, но отличаются способом задания условий повторения.
Цикл for
Цикл for используется для итерации по последовательности значений. Его синтаксис:
for (инициализация; условие; изменение) {
// Блок кода, который выполняется многократно
}
- Инициализация: выполняется один раз перед началом цикла. Обычно здесь объявляется и инициализируется счётчик цикла.
- Условие: проверяется перед каждой итерацией. Если условие истинно, цикл продолжает работу; иначе — завершается.
- Изменение: выполняется после каждой итерации. Обычно здесь изменяется значение счётчика цикла.
Пример: Вывод чисел от 0 до 9:
for (int i = 0; i < 10; i++) {
printf("%d ", i);
}
Пример: Вывод чисел от 1 до 10:
for (int i = 1; i <= 10; i++) {
printf("%d ", i);
}
Пример: Деление числа на 2 до тех пор, пока оно не станет меньше 10:
float n = 100.0f;
for (; n > 10; n /= 2) {
printf("%.2f ", n);
}
Если внутри цикла только одна строка кода, фигурные скобки можно опустить.
Цикл while
Цикл while выполняет блок кода, пока условие истинно. Синтаксис:
while (условие) {
// Блок кода, который выполняется многократно
}
Пример: Цикл с выходом при вводе числа 1:
bool isRunning = true;
int x;
while (isRunning) {
printf("Введите число: ");
scanf("%d", &x);
if (x == 1) {
isRunning = false;
}
printf("Вы ввели: %d\n", x);
}
Цикл do-while
Цикл do-while похож на while, но условие проверяется в конце каждой итерации. Поэтому блок кода выполнится хотя бы один раз. Синтаксис:
do {
// Блок кода, который выполняется многократно
} while (условие);
Пример:
bool isRunning = false;
do {
printf("Слово 'с'\n");
} while (isRunning);
Операторы break и continue
- break: прерывает выполнение цикла и переходит к коду, следующему за циклом.
- continue: пропускает текущую итерацию цикла и переходит к следующей.
Пример break:
for (int x = 0; x < 5; x++) {
if (x == 3) {
break;
}
printf("%d ", x);
}
Пример continue: Вывод только нечётных чисел:
for (int x = 0; x < 8; x++) {
if (x % 2 == 0) {
continue;
}
printf("%d ", x);
}
Операторы break и continue могут использоваться совместно в одном цикле.
Работа с массивами
Циклы эффективно используются для обработки массивов.
Пример: Вывод элементов массива:
int arr[] = {1, 5, -2, 6, 10};
for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); i++) {
printf("%d ", arr[i]);
}
Пример: Поиск минимального и максимального элементов массива:
int arr[] = {1, 5, -2, 6, 10, -67, 6};
int min = arr[0];
int max = arr[0];
for (int i = 1; i < sizeof(arr) / sizeof(arr[0]); i++) {
if (arr[i] < min) {
min = arr[i];
}
if (arr[i] > max) {
max = arr[i];
}
}
printf("Минимум: %d, Максимум: %d\n", min, max);
Мы изучили три основных типа циклов в языке C: for, while и do-while, а также операторы break и continue, позволяющие управлять потоком выполнения цикла. Циклы являются фундаментальным инструментом для написания эффективных и гибких программ. Понимание их работы и умение применять их на практике является важным навыком для любого программиста на C.