Menu
CoddyTech

Цикл 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.

challenge icon

Задание

Легко

Программа считывает одно десятичное число в 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, затем выведите его
quiz iconПроверьте себя

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

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

Потренируйтесь самостоятельно: Онлайн-компилятор GDScript