Циклы в Ц: Полное руководство для начинающих

Здравствуйте, будущие маги кодирования! Сегодня мы погружаемся в魔法льный мир вложенных циклов в Ц. Не волнуйтесь, если вы новички в программировании - я буду вашим доброжелательным проводником в этом захватывающем путешествии. К концу этого учебника вы будете создавать вложенные циклы, как профессионал!

C - Nested loop

Что такое вложенные циклы?

Прежде чем мы полезем вглубь, давайте начнем с азов. Представьте, что вы организовываете ящик для носков. У вас есть носки разных цветов, и каждый цвет имеет несколько пар. Чтобы их отсортировать, вы можете пройти через каждый цвет (внешний цикл) и затем отсчитать и спарить каждый носок того цвета (внутренний цикл). Это Essentially что делают вложенные циклы в программировании!

Вложенный цикл - это просто цикл внутри другого цикла. Внутренний цикл полностью выполняется для каждой итерации внешнего цикла. Это как те русские матрешки - открываешь одну, а внутри есть другая!

Вложенные циклы For

Давайте начнем с самого распространенного типа вложенных циклов: вложенных циклов for. Вот простой пример:

#include <stdio.h>

int main() {
int i, j;
for (i = 1; i <= 3; i++) {
for (j = 1; j <= 3; j++) {
printf("(%d, %d) ", i, j);
}
printf("\n");
}
return 0;
}

Этот код выведет:

(1, 1) (1, 2) (1, 3)
(2, 1) (2, 2) (2, 3)
(3, 1) (3, 2) (3, 3)

Давайте разберем это:

  1. Внешний цикл (i) выполняется 3 раза.
  2. Для каждой итерации внешнего цикла, внутренний цикл (j) выполняется 3 раза.
  3. Мы выводим значения i и j каждый раз, когда выполняется внутренний цикл.
  4. После завершения внутреннего цикла, мы выводим символ новой строки (\n).

Это как танец: внешний цикл ведет, а внутренний цикл следует,旋转三次 за каждый шаг внешнего цикла!

Более практический пример

Теперь давайте используем вложенные циклы, чтобы создать таблицу умножения:

#include <stdio.h>

int main() {
int i, j;
printf("   ");
for (i = 1; i <= 10; i++) {
printf("%4d", i);
}
printf("\n   -------------------------------------\n");
for (i = 1; i <= 10; i++) {
printf("%2d |", i);
for (j = 1; j <= 10; j++) {
printf("%4d", i * j);
}
printf("\n");
}
return 0;
}

Этот код создает красивую таблицу умножения 10x10. Внешний цикл представляет строки, а внутренний цикл represents столбцы. Мы умножаем номер строки на номер столбца, чтобы получить значение каждой ячейки.

Вложение цикла While внутрь цикла For

Кто сказал, что мы не можем комбинировать? Давайте试试 вложить цикл while внутрь цикла for:

#include <stdio.h>

int main() {
int i, j;
for (i = 1; i <= 5; i++) {
j = 1;
while (j <= i) {
printf("* ");
j++;
}
printf("\n");
}
return 0;
}

Этот код выводит правосторонний треугольник из звёздочек:

*
* *
* * *
* * * *
* * * * *

Здесь, цикл for контролирует количество строк, а цикл while выводит звездочки в каждой строке. Это как строить пирамиду - вы добавляете больше блоков, поднимаясь вверх!

Примеры вложенных циклов в Ц

Давайте рассмотрим еще несколько примеров, чтобы巩固ить наше понимание:

1. Number Pattern

#include <stdio.h>

int main() {
int i, j, rows = 5;
for (i = 1; i <= rows; i++) {
for (j = 1; j <= i; j++) {
printf("%d ", j);
}
printf("\n");
}
return 0;
}

Это создает числовой узор:

1
1 2
1 2 3
1 2 3 4
1 2 3 4 5

2. Alphabet Pattern

#include <stdio.h>

int main() {
int i, j;
char current = 'A';
for (i = 1; i <= 5; i++) {
for (j = 1; j <= i; j++) {
printf("%c ", current++);
}
printf("\n");
}
return 0;
}

Этот код выводит узор из алфавита:

A
B C
D E F
G H I J
K L M N O

3. Prime Number Checker

#include <stdio.h>

int main() {
int i, j, flag;
printf("Простые числа между 1 и 50:\n");
for (i = 2; i <= 50; i++) {
flag = 0;
for (j = 2; j <= i/2; j++) {
if (i % j == 0) {
flag = 1;
break;
}
}
if (flag == 0)
printf("%d ", i);
}
return 0;
}

Эта программа находит все простые числа между 1 и 50. Внешний цикл iterate через числа, а внутренний цикл проверяет, является ли каждое число простым.

Заключение

Вложенные циклы - это мощные инструменты в наборе инструментов программиста. Они позволяют нам работать с多维енными данными и создавать сложные узоры. Помните, что практика makes perfect! Попробуйте изменить эти примеры или создайте свои собственные программы с вложенными циклами.

Вот quick reference table типов вложенных циклов, которые мы рассмотрели:

Внешний цикл Внутренний цикл Пример использования
For For Создание 2D узоров или таблиц
For While Операции с переменной длиной строки
While For Повторение фиксированной операции переменное количество раз
While While Операции с двойным условием

Счастливого программирования, и пусть ваши циклы всегда будут идеально вложены!

Credits: Image by storyset