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.
Desafío
FácilEl 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.875Si 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
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Operadores, parte 1
Operadores aritméticosDivisión enteraOperador móduloAtajos aritméticosRepaso: matemáticas básicasOperadores de comparación7Entrada y salida básicas
SalidaSalida con variablesFormato de cadenasEntradaConversión de tipoRepaso: hasta 120Repaso: verdadero o falso10Funciones
Declarar una funciónArgumentosRetornoTipos de retornoRepaso: función SigmaRepaso: función de validaciónValores predeterminados5Operadores, parte 2
Operadores lógicos, parte 1Operadores lógicos, parte 2Repaso: lógica simpleOperadores lógicos, parte 3Operador ternario8Calculadora para dividir la cuenta
Mensaje de bienvenidaCómo obtener datos3Variables, parte 2
Declaración de tiposInferencia de tiposConstantesRepaso: inicializar variablesConversión de tipos9Bucles
Bucle forBucle whileBreakContinueRepaso - FactorialLa función rangeBucle anidadoRepaso - Entrada dinámicaPractica por tu cuenta: Compilador de GDScript online