Что имеет приоритет в цикле: для или пока? - PullRequest
1 голос
/ 25 марта 2019

Допустим, у меня есть следующий блок кода:

x <- 0

while (x < 50){
  for (i in letters){
    print(i)
    x <- x + 10
  }
}

Каков порядок операций? Применяются ли критерии остановки «стоп», даже если в цикле «for» больше циклов?

Я проверил это, и он прошел весь цикл for, несмотря на то, что x достиг 250.

Есть ли способ добавить правило, которое говорит следовать за циклом while перед циклом for?

Ответы [ 2 ]

2 голосов
/ 25 марта 2019

Ваша петля for вложена в петлю while. Каждый раз, когда цикл while входит в итерацию, управление передается его телу цикла, которое в данном случае является циклом for. Затем цикл for получает управление и выполняет свою итерацию. После этого цикл for выходит из-под контроля и возвращается к циклу while. Тип цикла while определяет количество выполнений цикла for.

Для break a цикла for, когда критерии нарушены или с любой другой логикой, вы можете использовать оператор break внутри блока if внутри тела цикла.

1 голос
/ 25 марта 2019

Поскольку (x <50) истинно при запуске, проверка состояния больше не выполняется, пока цикл for не завершится. Единственный вариант - использовать условный разрыв внутри для цикла. </p>

for (i in letters){
    if (x < 50){
        break
    }
    print(i)
    x <- x + 10

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...