Циклы — одна из основных концепций программирования. Они гарантируют, что определенные фрагменты кода выполняются повторно при определенных условиях. В циклах while в R фрагмент программы повторяется до тех пор, пока ранее указанное условие не окажется неверным.
Для чего используются циклы while в R?
Циклы while используются для многократного выполнения программного кода в зависимости от условия. Пока это условие истинно, выполняется код, помещенный в блок кода цикла while.
Циклы обычно используются в программировании на R для перебора элементов списка R и последующего выполнения определенных операций над каждым элементом этого списка индивидуально. Например, вы можете отображать на экране каждую строку из списка строк R. Но циклы while в R также используются для условного выполнения кода. Кроме того, такие циклы, как цикл while, являются основой реализации многих известных алгоритмов сортировки, которые организуют набор данных по определенным критериям.
Структура и синтаксис циклов while в R
Синтаксис циклов while в R аналогичен структуре циклов while в большинстве других языков программирования. В заголовке цикла, который начинается с ключевого слова while, условие указывается в круглых скобках. Последнее должно быть истинным, чтобы тело цикла было выполнено. Это тело представляет собой не что иное, как собственный блок кода после заголовка цикла, заключенный в фигурные скобки.
Пример полезен для иллюстрации синтаксиса. В следующем примере R-Loop показан цикл while, который выводит значения от 1 до 10:
x <- 1 while (x <= 10) { print(x) x <- x + 1 }
Пример: пузырьковая сортировка в R
Пузырьковая сортировка — это классический алгоритм сортировки, используемый для сортировки элементов вектора R или массива в R в порядке возрастания. Этот алгоритм сортировки использует цикл while для выполнения кода сортировки, пока все элементы вектора не будут отсортированы:
bubblesort <- function(x) { swapped <- TRUE n <- length(x) - 1 while (swapped) { swapped <- FALSE for (i in 1:n) { if (x[i] > x[i+1]) { tmp <- x[i] x[i] <- x[i+1] x[i+1] <- tmp swapped <-TRUE } } } return(x) }
В приведенном выше коде создается функция R под названием bubblesort. Это гарантирует, что числовой вектор отсортирован в порядке возрастания. Цикл while используется для выполнения процесса обмена, который необходим для пузырьковой сортировки, пока сортировка не будет завершена.
Выйти из цикла while в R
Чтобы выйти из цикла while раньше при определенных условиях, вы можете breakиспользовать ключевое слово. Это гарантирует, что цикл выйдет из цикла и не будет введен повторно. Пример приложения breakобъясняет принцип:
x <- 10 while (x >= 0) { print(x) if (x == 5) { break } x <- x - 1 }
Приведенный выше цикл выводит на экран числа от 10 до 5. Когда переменная xдостигает значения 5, ifвыполняется условие R и цикл завершается раньше, вызывая break.
Другие циклы в R
Цикл while в R — не единственная форма цикла в R. В дополнение к нему существуют цикл for, который часто рассматривается как разновидность цикла подсчета, и цикл повторения, который используется для многократного выполнения кода независимо от того, состояния. Повторяющиеся циклы необходимо breakзавершать с помощью ключевого слова, иначе это бесконечные циклы.
Для цикла в R
Циклы for используются, когда количество итераций известно заранее. Количество итераций явно указано в заголовке цикла. Цикл for, печатающий числа от 1 до 5, выглядит следующим образом:
for (z in 1:5) { print(i) }
Повторить петлю в R
Циклы повторения в R используются для многократного выполнения кода независимо от условия. Если вы только не изучаете программирование, вы, вероятно, знакомы с циклами do- while из других языков программирования, таких как Java. В R нет явного цикла do- while, в котором блок кода выполняется хотя бы один раз. Однако эту функциональность можно легко реализовать с помощью циклов повторения:
x <- 1 repeat { print(x) if (x >= 10) { break } x <- x + 1 }
В приведенном выше примере кода печатаются числа от 1 до 10 с экрана. Код, который должен быть выполнен хотя бы один раз (и который будет находиться в «блоке кода do» в классическом цикле do- while), выполняется перед оператором, ifкоторый завершает цикл, если указанное условие истинно.








