Программирование дротиков - циклы
Иногда некоторые инструкции требуют повторного выполнения. Циклы - идеальный способ сделать то же самое. Цикл представляет собой набор инструкций, которые необходимо повторить. В контексте цикла повторение называетсяiteration.
На следующем рисунке показана классификация петель -
Начнем обсуждение с определенных циклов. Цикл, количество итераций которого определено / фиксировано, называетсяdefinite loop.
Старший Нет | Цикл и описание |
---|---|
1 | для цикла
В forloop - это реализация определенного цикла. Цикл for выполняет блок кода указанное количество раз. Его можно использовать для перебора фиксированного набора значений, например массива |
2 | for… in Loop
Цикл for ... in используется для просмотра свойств объекта. |
Двигаясь дальше, давайте теперь обсудим неопределенные циклы. Неопределенный цикл используется, когда количество итераций в цикле неопределенно или неизвестно. Неопределенные циклы могут быть реализованы с помощью -
Старший Нет | Цикл и описание |
---|---|
1 | пока цикл
Цикл while выполняет инструкции каждый раз, когда указанное условие оценивается как истинное. Другими словами, цикл оценивает условие до выполнения блока кода. |
2 | делать… while Loop
Цикл do… while аналогичен циклу while, за исключением того, что цикл do… while не оценивает условие при первом выполнении цикла. |
Давайте теперь продолжим и обсудим Loop Control Statements дротика.
Старший Нет | Положение и описание управления |
---|---|
1 | заявление о прерывании
В breakОператор используется для вывода управления из конструкции. С помощьюbreakв цикле заставляет программу выйти из цикла. Ниже приводится примерbreak заявление. |
2 | продолжить заявление
В continue оператор пропускает последующие операторы в текущей итерации и возвращает управление в начало цикла. |
Использование меток для управления потоком
А label- это просто идентификатор, за которым следует двоеточие (:), применяемый к оператору или блоку кода. Этикетку можно использовать сbreak а также continue для более точного управления потоком.
Разрывы строк между ‘continue’ или же ‘break’заявление и название его ярлыка. Кроме того, не должно быть никаких других операторов между именем метки и связанным циклом.
Пример: этикетка с разрывом
void main() {
outerloop: // This is the label name
for (var i = 0; i < 5; i++) {
print("Innerloop: ${i}");
innerloop:
for (var j = 0; j < 5; j++) {
if (j > 3 ) break ;
// Quit the innermost loop
if (i == 2) break innerloop;
// Do the same thing
if (i == 4) break outerloop;
// Quit the outer loop
print("Innerloop: ${j}");
}
}
}
Продолжение output отображается при успешном выполнении вышеуказанного кода.
Innerloop: 0
Innerloop: 0
Innerloop: 1
Innerloop: 2
Innerloop: 3
Innerloop: 1
Innerloop: 0
Innerloop: 1
Innerloop: 2
Innerloop: 3
Innerloop: 2
Innerloop: 3
Innerloop: 0
Innerloop: 1
Innerloop: 2
Innerloop: 3
Innerloop: 4
Пример: ярлык с продолжением
void main() {
outerloop: // This is the label name
for (var i = 0; i < 3; i++) {
print("Outerloop:${i}");
for (var j = 0; j < 5; j++) {
if (j == 3){
continue outerloop;
}
print("Innerloop:${j}");
}
}
}
Следующий вывод отображается при успешном выполнении вышеуказанного кода.
Outerloop: 0
Innerloop: 0
Innerloop: 1
Innerloop: 2
Outerloop: 1
Innerloop: 0
Innerloop: 1
Innerloop: 2
Outerloop: 2
Innerloop: 0
Innerloop: 1
Innerloop: 2