Цикл For
Часть раздела Основы путешествия по R на Coddy — урок 38 из 78.
Иногда вам нужно повторить действие несколько раз. Вместо того чтобы писать один и тот же код снова и снова, вы можете использовать цикл for для многократного выполнения кода.
Цикл for перебирает последовательность значений, выполняя код внутри цикла один раз для каждого значения:
for (i in 1:3) {
print(i)
}Вывод:
[1] 1
[1] 2
[1] 3Переменная i принимает каждое значение в последовательности 1:3 (что означает 1, 2, 3). Для каждого значения код внутри фигурных скобок { } выполняется один раз.
Вы можете использовать любое имя переменной и выполнять любые операции внутри цикла:
for (num in 1:4) {
print(num * 2)
}Вывод:
[1] 2
[1] 4
[1] 6
[1] 8Цикл умножает каждое число на 2 перед его выводом. В этом и заключается сила циклов — напишите логику один раз, и она будет применяться к каждому значению в вашей последовательности.
Задание
ЛегкоПрочитайте число n из входных данных и используйте цикл for для вывода квадратов всех чисел от 1 до n.
Каждый квадрат должен быть выведен на отдельной строке с помощью print().
Например, если на вход подается 4, вывод должен быть следующим:
[1] 1
[1] 4
[1] 9
[1] 16Шпаргалка
Цикл for многократно выполняет код, перебирая последовательность значений:
for (i in 1:3) {
print(i)
}Переменная i принимает каждое значение из последовательности 1:3. Код внутри фигурных скобок { } выполняется один раз для каждого значения.
Вы можете использовать любое имя переменной и выполнять операции внутри цикла:
for (num in 1:4) {
print(num * 2)
}Вывод:
[1] 2
[1] 4
[1] 6
[1] 8Попробуйте сами
# Чтение входных данных
con <- file("stdin", "r")
n <- as.integer(suppressWarnings(readLines(con, n = 1)))
# TODO: Напишите свой код ниже
# Используйте цикл for, чтобы вывести квадрат каждого числа от 1 до nВ этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 2
Логические операторы (AND, OR)Логические операторы. Часть 2 (NOT)Повторение: простая логикаВекторизованная логика. Часть 1Векторизованная логика. Часть 27Калькулятор разделения счета
Приветственное сообщениеПолучение пользовательского ввода13Векторы: продвинутый уровень
Срезы и индексация векторовЛогическая индексацияАрифметика и ресайклинг векторовОператор %in%2Переменные и типы данных
Числовой тип данныхЦелочисленный тип данныхСимвольный тип данныхЛогический тип данныхПроверка типов данныхПравила именованияПропущенные значения: NAИтоги — создание переменных5Принятие решений
Оператор ifКонструкция if - elseПовторение: Простой калькуляторВложенные конструкции if - else8Циклы
Цикл ForЦикл WhileBreakNext (Continue)Повторение: ФакториалГенерация последовательностей (seq, :)Вложенные циклыПовторение: Динамический ввод3Операторы. Часть 1
Арифметические операторыЦелочисленное деление и остаток от деленияОператоры присваиванияПовторение: простая математикаОператоры сравнения6Основы ввода-вывода
Вывод через printКоманда cat для выводаВывод с переменнымиЧтение ввода через readline()Основы преобразования типовПовторение — Калькулятор возрастаПовторение — Истина или ложь9Функции
Объявление функцииАргументы функцииВозвращаемые значенияПовторение — функция SigmaПовторение — функция валидацииЗначения параметров по умолчанию12Итерация по последовательностям
Итерация по элементам вектораИспользование seq_along()Итерация по символам (strsplit)Функции для работы со строками