Введение в C для циклов for, while и do-while
C предлагает нам три способа выполнения цикла:для петель,пока петлииделать в то время как петли. Все они позволяют перебиратьмассивы, но с некоторыми отличиями. Посмотрим на них подробнее.
Для петель
Первый и, вероятно, наиболее распространенный способ выполнения цикла - этодля петель.
С использованиемfor
ключевое слово мы можем определитьправилацикла впереди, а затем предоставьте блок, который будет выполняться повторно.
Так:
for (int i = 0; i <= 10; i++) {
/* instructions to be repeated */
}
В(int i = 0; i <= 10; i++)
блок содержит 3 части деталей цикла:
- начальное условие (
int i = 0
) - тест (
i <= 10
) - приращение (
i++
)
Сначала мы определяем переменную цикла, в данном случае с именемi
.i
- это общее имя переменной, которое будет использоваться для циклов вместе сj
для вложенных циклов (цикл внутри другого цикла). Это просто условность.
Переменная инициализируется значением 0, и выполняется первая итерация. Затем он увеличивается, как говорит часть приращения (i++
в этом случае увеличивается на 1), и весь цикл повторяется, пока вы не дойдете до числа 10.
Внутри основного блока цикла мы можем получить доступ к переменнойi
чтобы знать, на какой итерации мы находимся. Эта программа должна печатать0 1 2 3 4 5 5 6 7 8 9 10
:
for (int i = 0; i <= 10; i++) {
/* instructions to be repeated */
printf("%u ", i);
}
Циклы также могут начинаться с большого числа и идти с меньшего числа, например:
for (int i = 10; i > 0; i--) {
/* instructions to be repeated */
}
Вы также можете увеличить переменную цикла на 2 или другое значение:
for (int i = 0; i < 1000; i = i + 30) {
/* instructions to be repeated */
}
Пока петли
Пока петлинаписать проще, чемfor
цикл, потому что он требует от вас немного больше работы.
Вместо того, чтобы определять все данные цикла заранее, когда вы запускаете цикл, как вы это делаете вfor
цикл, используяwhile
вы просто проверяете условие:
while (i < 10) {
}
Это предполагает, чтоi
уже определен и инициализирован значением.
И этот цикл будетбесконечный циклесли вы не увеличитеi
переменная в какой-то момент внутри цикла. Бесконечный цикл - это плохо, потому что он заблокирует программу, больше ничего не может произойти.
Вот что вам нужно для «правильного» цикла while:
int i = 0;
while (i < 10) {
/* do something */
i++;
}
Есть одно исключение из этого, и мы увидим это через минуту. Раньше позвольте мне представитьdo while
.
Делайте циклы while
Циклы while - это здорово, но бывают случаи, когда вам нужно сделать одну конкретную вещь: вы хотите всегда выполнять блок, а затемможет бытьповтори это.
Это делается с помощьюdo while
ключевое слово, что очень похоже наwhile
петля, но немного другая:
int i = 0;
do {
/* do something */
i++;
} while (i < 10);
Блок, содержащий/* do something */
комментарий всегда выполняется хотя бы один раз, независимо от проверки условия внизу.
Затем, покаi
меньше 10, повторим блок.
Выход из петли с помощьюbreak
Во всехCциклы у нас есть способ выйти из цикла в любой момент времени, немедленно, независимо от условий, установленных для цикла.
Это делается с помощьюbreak
ключевое слово.
Это полезно во многих случаях. Вы можете проверить значение переменной, например:
for (int i = 0; i <= 10; i++) {
if (i == 4 && someVariable == 10) {
break;
}
}
Возможность выхода из цикла особенно интересна дляwhile
петли (иdo while
тоже), потому что мы можем создавать кажущиеся бесконечными циклы, которые заканчиваются при возникновении условия, и вы определяете это внутри блока цикла:
int i = 0;
while (1) {
/* do something */
i++;
if (i == 10) break;
}
Такие циклы довольно часто встречаются в C.
Скачать мою бесплатнуюСправочник C
Больше уроков по clang:
- Введение в язык программирования C
- C Переменные и типы
- Константы C
- Операторы C
- C Условные выражения
- Как работать с петлями на C
- Введение в массивы C
- Как определить длину массива в C
- Введение в строки C
- Как найти длину строки в C
- Введение в указатели C
- Цикл по массиву с помощью C
- Логические значения в C
- Введение в функции C
- Как использовать NULL в C
- Основные концепции ввода-вывода в C
- Двойные кавычки против одинарных кавычек в C
- Как вернуть строку из функции C
- Как решить неявное объявление предупреждения библиотечной функции в C
- Как проверить значение символа в C
- Как напечатать процентный символ с помощью printf () на C
- Спецификаторы и модификаторы преобразования C
- Как получить доступ к параметрам командной строки в C
- Объем переменных в C
- Можете ли вы вкладывать функции в C?
- Статические переменные в C
- C Глобальные переменные
- Ключевое слово typedef в C
- C Перечислимые типы
- Структуры C
- Заголовочные файлы C
- Препроцессор C