Поиск…


Синтаксис

  • для (декларация, условие, итерация) {}
  • while (условие) {}
  • do {} while (условие)

замечания

General Remark Если вы намереваетесь создать цикл, чтобы ждать чего-то, вы, вероятно, ошибетесь здесь. Скорее помните, что весь код после setup () запускается из метода, называемого loop (). Поэтому, если вам нужно что-то ждать, проще всего ничего не делать (или только другие независимые вещи) и вернуться в следующий раз, чтобы проверить состояние ожидания.

do { } while(condition) не будет оценивать оператор условия до первой итерации. Это важно иметь в виду, если оператор условия имеет побочные эффекты.

В то время как

В while цикл будет оценивать его состояние, и если true , он будет выполнять код внутри и начать все сначала. То есть, до тех пор , как его состояние оценивается как true , то в while цикл будет выполняться снова и снова.


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

int num = 0;
while (num < 100) {
    // do something
    num++;
}

Вышеупомянутый цикл эквивалентен циклу for :

for (int i = 0; i < 100; i++) {
    // do something
}

Этот цикл будет выполняться вечно:

while (true) {
    // do something
}

Вышеупомянутый цикл эквивалентен циклу for :

for (;;) {
    // do something
}

За

for петли упрощенного синтаксис для очень общего шаблона контура, который может быть достигнут в большем количестве линий с в while цикла.

Ниже приведен общий пример цикла for , который будет выполняться 100 раз, а затем останавливаться.

for (int i = 0; i < 100; i++) {
    // do something
}

Это эквивалентно в while цикла:

int num = 0;
while (num < 100) {
    // do something
    num++;
}

Вы можете создать бесконечный цикл, исключив условие.

for (;;) {
    // do something
}

Это эквивалентно в while цикла:

while (true) {
    // do something
}

Делать пока

do while в while do while петли такая же , как в while цикла, за исключением того, что он гарантированно выполнить по крайней мере один раз.

Следующий цикл будет выполняться 100 раз.

int i = 0;
do {
    i++;
} while (i < 100);

Аналогичный цикл, но с другим условием, будет выполняться 1 раз.

int i = 0;
do {
    i++;
} while (i < 0);

Если выше петли были просто в while цикл, это выполнение будет 0 раз, потому что условие будет вычисляться false перед первой итерацией. Но поскольку это цикл do while while, он выполняется один раз, а затем проверяет его состояние перед повторным выполнением.

Управление потоком

Есть несколько способов сломать или изменить поток цикла.

break; выйдет из текущего цикла и не будет выполнять никаких строк в этом цикле.

continue; не будет выполнять больше кода в текущей итерации цикла, но останется в цикле.

Следующий цикл будет выполняться 101 раз (i = 0, 1, ..., 100) вместо 1000 из-за инструкции break :

for (int i = 0; i < 1000; i++) {
    // execute this repeatedly with i = 0, 1, 2, ...
    if (i >= 100) {
        break;
    }
}

Следующий цикл приведет к тому, что значение j равным 50 вместо 100, из-за инструкции continue :

int j=0;
for (int i = 0; i < 100; i++) {
    if (i % 2 == 0) { // if `i` is even
        continue;
    }
    j++;
}
// j has the value 50 now.


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow