Desarrollo / ROBLOX
Bucle for en Luau: una tanda finita de tres estaciones
Practica límites, orden, recuentos y recorrido inverso con tres números de estación. Aprende a distinguir saltar una operación de detener la tanda. Los ejemplos independientes se ejecutaron en Luau sin modificar juegos publicados.
Define la tanda antes del código #
Imagina un taller que revisa tres estaciones numeradas antes de abrir un turno. Para practicar bastan los números 1, 2 y 3: no hacen falta objetos de Roblox, jugadores conectados ni premios. Escribe primero el resultado esperado: cada número aparece una vez y se completan tres operaciones. Una expectativa explícita permite detectar un límite incorrecto antes de añadir comportamiento de juego más complejo.
Aquí el número de estación es un contador, no un nombre de objeto ni un identificador de jugador. Un proyecto real debe relacionarlo por separado con un objeto verificado. El ejercicio solo estudia la repetición. Obtener la salida esperada no demuestra que la escena esté configurada, que se haya guardado progreso ni que alguien haya completado un objetivo del juego.
Ejecuta tres operaciones #
El primer ejemplo independiente usa for numérico desde 1 hasta 3 y aumenta processed después de cada operación. Deben aparecer Station 1, Station 2, Station 3 y finalmente Processed 3. print separa sus argumentos; compara los valores y el orden. Ejecuta únicamente este ejemplo al principio para que mensajes antiguos no oculten el resultado de la prueba actual.
Comprueba las tres estaciones, además del total final. Un código incorrecto también podría sumar tres acciones repitiendo una estación y omitiendo otra. processed sirve como comprobación sencilla de la cantidad de operaciones completadas. El contador station pertenece al cuerpo del bucle; no dependas de esa variable local después de end sin guardar deliberadamente un resultado en otra variable.
local processed = 0
for station = 1, 3 do
print("Station", station)
processed += 1
end
print("Processed", processed)Comprueba los dos extremos #
En esta tanda se incluyen tanto 1 como 3, por lo que hay tres iteraciones y no dos. Un error habitual consiste en restar el inicio al final y olvidar la posición inicial. Para enteros consecutivos, paso uno y dirección adecuada, la cantidad es final menos inicio más uno. Confirma esa cuenta con una tanda pequeña antes de ampliar el intervalo.
También conviene probar dos límites: de 2 a 2 con paso positivo produce una operación; de 4 a 3 con paso positivo no produce ninguna. Cero puede ser un resultado correcto, no un fallo de print. Si esperabas una tanda no vacía, revisa los extremos y la dirección. No aumentes arbitrariamente el final para esconder un error en las entradas.
Recorre las estaciones al revés #
El segundo ejemplo independiente comienza en 3, termina en 1 y declara el paso -1. La secuencia esperada es 3, 2, 1, seguida de Processed 3. Puedes imaginar una revisión de cierre que examina las estaciones en orden inverso. Con el paso positivo habitual, el intervalo de 3 a 1 quedaría vacío.
Compara ambas salidas juntas. El total coincide, pero el orden cambia y forma parte del requisito. Define la dirección en la cabecera del bucle en lugar de alterar manualmente el contador dentro del cuerpo. Para este ejercicio inicial elige un paso entero pequeño, comprensible y distinto de cero. Los extremos fraccionarios, intervalos enormes y valores externos requieren validaciones adicionales que el ejemplo no sustituye.
local processed = 0
for station = 3, 1, -1 do
print("Station", station)
processed += 1
end
print("Processed", processed)Distingue continue de break #
Si necesitas omitir temporalmente la estación 2, continue dentro de la condición correspondiente pasa a la siguiente iteración. En el intervalo 1–3 se completan las estaciones 1 y 3. Aumenta processed después de la condición de omisión si cuenta acciones terminadas. Aumentarlo antes de continue mide números visitados, una cantidad diferente aunque la variable conserve el mismo nombre.
Si debes detener toda la tanda, break sale del bucle más cercano. Detenerse antes de procesar la estación 2 completa únicamente la estación 1; la estación 3 no se alcanza. La regla del bucle más cercano importa cuando hay bucles anidados. No describas break como una orden que detiene todos los scripts o apaga el servidor: ese no es su alcance.
Prepara resultados comprobables #
Escribe cuatro casos: recorrido 1–3 con tres acciones; extremos iguales 2–2 con una; paso positivo 4–3 con cero; recorrido inverso 3–1 y paso -1 con tres. En cada fila incluye también los números en orden de ejecución. Así puedes distinguir una secuencia correcta de una coincidencia accidental del contador final.
Después prueba omitir y detener como escenarios separados usando la misma tanda pequeña. No mezcles las dos intenciones en una condición ambigua. Predice cada secuencia antes de ejecutar y compara después la salida. Si hay diferencias, localiza la primera operación inesperada. Normalmente aporta más información que leer una y otra vez solamente la última línea del total.
El trabajo finito también tiene coste #
Un bucle finito aún puede ejecutar demasiado trabajo costoso de una vez. Imprimir tres números enseña a contar; crear un millón de objetos o repetir solicitudes de red es otra carga. Antes de añadir una operación real, define el tamaño permitido de la tanda y considera el coste de cada acción. No aceptes un recuento proporcionado por jugadores sin validar sus límites.
El for numérico tampoco es un temporizador: las iteraciones no representan segundos. Esta guía no implementa consultas interminables, premios periódicos ni sincronización de red. Un sistema real necesita decisiones adicionales sobre planificación, lugar de ejecución y fallos de operaciones. Superar este pequeño ejercicio aritmético confirma el control del bucle, no la preparación de todo un sistema para publicarse.
| Escenario | Resultado esperado |
|---|---|
| 1 → 3, paso 1 | 1, 2, 3: tres |
| 2 → 2, paso 1 | 2: una |
| 4 → 3, paso 1 | Vacío: cero |
| 3 → 1, paso -1 | 3, 2, 1: tres |
Entrega una prueba reproducible #
Anota los extremos, el paso, la secuencia esperada y el recuento observado. Adjunta ambos ejemplos independientes y los resultados de los cuatro casos límite. Para continue especifica si cuentas visitas u operaciones completadas. Para break describe la condición de parada y qué parte de la tanda queda pendiente de procesar.
Estos ejemplos se ejecutaron en un intérprete independiente de Luau, no contra estaciones reales en Roblox Studio. Otro desarrollador puede reutilizarlos como base de prueba, pero debe comprobar sus propios objetos y reglas. Conserva las expectativas junto al código: cuando cambie el número de estaciones, ayudarán a descubrir un error de límites antes de publicar una actualización.
| Campo de prueba | Anotar |
|---|---|
| Extremos | Número inicial y final |
| Paso | Dirección explícita |
| Orden | Todos los números en orden |
| Total | Acciones completadas |