Menu
CoddyTech

Bucle while

Parte de la sección Fundamentos del Journey de GDScript de Coddy. Lección 44 de 92.

Un bucle for se ejecuta una vez por cada número de un rango. Un bucle while sigue ejecutándose mientras una condición sea true:

var count := 3
while count > 0:
	print(count)
	count -= 1
print("Go!")
3
2
1
Go!

La condición se comprueba antes de cada iteración. Cuando count se convierte en 0, count > 0 es false, así que el bucle se detiene y el programa continúa después de este. Si la condición es false desde el principio, el bloque nunca se ejecuta.

El bloque debe cambiar algo de lo que dependa la condición. Aquí, count -= 1 acerca count a 0. Sin eso, la condición seguiría siendo true y el bucle nunca terminaría.

Usa while cuando no sepas de antemano cuántas iteraciones necesitas. Por ejemplo, esto encuentra la menor potencia de 2 que es mayor que 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 se duplica en cada iteración: 2, 4, 8, 16, 32. En 32, power_of_two <= number es false, así que el programa imprime 32.

challenge icon

Desafío

Fácil

El programa lee un número decimal en number.

Usa un bucle while para dividir number entre 2 mientras sea mayor o igual que 3.5. Después, imprime el resultado, que es el primer valor menor que 3.5.

Por ejemplo, para la entrada 15, los valores son 15, 7.5, 3.75 y 1.875, así que el programa imprime:

1.875

Si la entrada ya es menor que 3.5, imprímela sin modificar. No uses un bucle for.

Pruébalo tú mismo

extends Node

func _ready():
	var number := float(OS.read_string_from_stdin())
	# Divide number entre dos mientras sea 3.5 o mayor; después, imprímelo
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos

Practica por tu cuenta: Compilador de GDScript online