Как работать с петлями на C

Введение в 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: