Цикл while
Часть раздела Основы путешествия по GDScript на Coddy. Урок 44 из 92.
Цикл for выполняется один раз для каждого числа в диапазоне. Цикл while продолжает выполняться, пока условие равно true:
var count := 3
while count > 0:
print(count)
count -= 1
print("Go!")3
2
1
Go!Условие проверяется перед каждой итерацией. Когда count становится равным 0, условие count > 0 становится false, поэтому цикл останавливается, и программа продолжает выполнение после него. Если условие изначально равно false, блок не выполняется.
Блок должен изменить что-то, от чего зависит условие. Здесь count -= 1 приближает count к 0. Без этого условие оставалось бы true, и цикл никогда бы не закончился.
Используй while, когда заранее не знаешь, сколько итераций тебе понадобится. Например, этот код находит наименьшую степень числа 2, которая больше 27:
var number := 27
var power_of_two := 1
while power_of_two <= number:
power_of_two *= 2
print(power_of_two)power_of_two удваивается на каждой итерации: 2, 4, 8, 16, 32. При значении 32 условие power_of_two <= number становится false, поэтому программа выводит 32.
Задание
ЛегкоПрограмма считывает одно десятичное число в number.
Используй цикл while, чтобы делить number на 2, пока оно больше или равно 3.5. Затем выведи результат — первое значение, меньшее 3.5.
Например, для ввода 15 значения будут 15, 7.5, 3.75 и 1.875, поэтому программа выведет:
1.875Если введённое число уже меньше 3.5, выведи его без изменений. Не используй цикл for.
Попробуйте сами
extends Node
func _ready():
var number := float(OS.read_string_from_stdin())
# Делите number пополам, пока оно не станет меньше 3.5, затем выведите его
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 1
Арифметические операторыЦелочисленное делениеОператор остатка от деленияСокращённая запись арифметических операцийПовторение — простая математикаОператоры сравнения7Основы ввода и вывода
ВыводВывод с переменнымиФорматирование строкВводПреобразование типовПовторение — до 120Повторение — истина или ложь5Операторы, часть 2
Логические операторы, часть 1Логические операторы, часть 2Повторение: простая логикаЛогические операторы, часть 3Тернарный оператор8Калькулятор для разделения счёта
Приветственное сообщениеВвод данных11FizzBuzz с неожиданным поворотом
Обзор игрыФункция FizzBuzz14Массивы: продвинутый уровень
Срезы массивовОператоры последовательностейПринадлежностьСортировка и обратный порядок3Переменные. Часть 2
Объявление типаВывод типаКонстантыПовторение — инициализация переменныхПреобразование типов6Принятие решений
Оператор ifЕсли — иначеПовторение: простой калькуляторВложенные условия if — elseОператор match9Циклы
Цикл forЦикл whileBreakContinueПовторение — факториалФункция rangeВложенный циклПовторение — динамический вводПотренируйтесь самостоятельно: Онлайн-компилятор GDScript