Menu
Coddy logo textTech

Цикл While

Часть раздела Основы путешествия по R на Coddy — урок 39 из 78.

В то время как цикл for перебирает заранее определенную последовательность, цикл while продолжает выполняться до тех пор, пока условие остается TRUE. Это полезно, когда вы заранее не знаете, сколько раз вам нужно что-то повторить.

count <- 1
while (count <= 3) {
  print(count)
  count <- count + 1
}

Вывод:

[1] 1
[1] 2
[1] 3

Цикл проверяет условие count <= 3 перед каждой итерацией. Когда count становится равным 4, условие становится FALSE, и цикл останавливается.

Важно: Вы должны обновлять переменную внутри цикла. Без count <- count + 1 условие всегда будет TRUE, создавая бесконечный цикл, который никогда не завершится.

total <- 0
num <- 1
while (num <= 5) {
  total <- total + num
  num <- num + 1
}
print(total)

Результат:

[1] 15

Этот пример складывает числа от 1 до 5, в результате чего получается 15. Цикл while идеально подходит в тех случаях, когда точка остановки зависит от условия, а не от фиксированной последовательности.

challenge icon

Задание

Легко

Прочитайте число n из входных данных. Используйте цикл while для вычисления и вывода суммы всех чисел от 1 до n.

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

После завершения цикла выведите итоговую сумму с помощью print().

Например, если на входе подано 5, результат должен быть:

[1] 15

Это связано с тем, что 1 + 2 + 3 + 4 + 5 = 15.

Шпаргалка

Цикл while выполняется до тех пор, пока условие остается TRUE:

count <- 1
while (count <= 3) {
  print(count)
  count <- count + 1
}

Цикл проверяет условие перед каждой итерацией. Когда условие становится FALSE, цикл останавливается.

Важно: Всегда обновляйте переменную внутри цикла, чтобы избежать бесконечных циклов:

total <- 0
num <- 1
while (num <= 5) {
  total <- total + num
  num <- num + 1
}
print(total)  # Вывод: [1] 15

Циклы while идеальны в тех случаях, когда точка остановки зависит от условия, а не от фиксированной последовательности.

Попробуйте сами

# Чтение входных данных
con <- file("stdin", "r")
n <- as.integer(suppressWarnings(readLines(con, n = 1)))

# Инициализация переменных
total <- 0
counter <- 1

# TODO: Напишите ниже цикл while для вычисления суммы от 1 до n


# Вывод результата
print(total)
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы