Next (Continue)
Часть раздела Основы путешествия по R на Coddy — урок 41 из 78.
В то время как break полностью выходит из цикла, иногда вам нужно лишь пропустить текущую итерацию и продолжить со следующей. Инструкция next делает именно это.
for (i in 1:5) {
if (i == 3) {
next
}
print(i)
}Результат:
[1] 1
[1] 2
[1] 4
[1] 5Когда i равно 3, инструкция next пропускает оставшуюся часть этой итерации, поэтому 3 никогда не выводится. Затем цикл продолжается с 4 и 5 в обычном режиме.
Это полезно, когда вы хотите отфильтровать определенные значения, не останавливая весь цикл. Например, вывод только четных чисел:
for (num in 1:6) {
if (num %% 2 != 0) {
next
}
print(num)
}Вывод:
[1] 2
[1] 4
[1] 6Здесь нечетные числа пропускаются с помощью next, и выводятся только четные числа. Ключевое отличие от break заключается в том, что цикл продолжает выполняться — он просто пропускает определенные итерации.
Задание
ЛегкоПрочитайте число n из входных данных. Используйте цикл for для итерации от 1 до n и выведите только те числа, которые не делятся на 4.
Используйте оператор next, чтобы пропустить числа, делящиеся на 4, и выведите все остальные числа с помощью print().
Например, если на вход подается 10, результат должен быть следующим:
[1] 1
[1] 2
[1] 3
[1] 5
[1] 6
[1] 7
[1] 9
[1] 10Обратите внимание, что числа 4 и 8 пропущены, так как они делятся на 4.
Шпаргалка
Оператор next пропускает текущую итерацию цикла и переходит к следующей:
for (i in 1:5) {
if (i == 3) {
next
}
print(i)
}Вывод:
[1] 1
[1] 2
[1] 4
[1] 5Когда i равно 3, next пропускает оставшуюся часть этой итерации, поэтому 3 никогда не выводится на печать. Цикл продолжается с оставшимися значениями.
Пример — вывод только четных чисел:
for (num in 1:6) {
if (num %% 2 != 0) {
next
}
print(num)
}Вывод:
[1] 2
[1] 4
[1] 6В отличие от break, который полностью завершает цикл, next только пропускает определенные итерации, в то время как цикл продолжает выполняться.
Попробуйте сами
# Чтение входных данных
con <- file("stdin", "r")
n <- as.integer(suppressWarnings(readLines(con, n = 1)))
# TODO: Напишите свой код ниже
# Используйте цикл for для итерации от 1 до n
# Используйте оператор next, чтобы пропустить числа, кратные 4
# Выведите все остальные числа с помощью print()В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
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)Функции для работы со строками