Patrones de Iteración
Clean Language tiene varias formas de iterar, cada una adecuada para un problema diferente. Rangos para bucles contados, iteración de listas para colecciones, while para conteos desconocidos. break y continue te dan control fino cuando lo necesitas.
Tres formas de iteración — rango, paso y lista:
start:\n string evens = ""\n iterate n in 2 to 10 step 2\n evens = evens + n.toString() + " "\n print("Evens: " + evens)\n\n list days = []\n days.add("Mon")\n days.add("Tue")\n days.add("Wed")\n iterate day in days\n print("Day: " + day)\n\n integer n = 1\n integer total = 0\n while n <= 5\n total = total + n\n n = n + 1\n print("Sum 1-5: " + total.toString()) Evens: 2 4 6 8 10 \nDay: Mon\nDay: Tue\nDay: Wed\nSum 1-5: 15iterate n in 2 to 10 step 2 cuenta de dos en dos. iterate day in days recorre cada elemento por valor — sin necesidad de índice. while n <= 5 se ejecuta hasta que la condición es falsa — úsalo cuando el conteo depende de la lógica.
break sale de forma anticipada; continue salta a la siguiente iteración:
start:\n list names = []\n names.add("Alice")\n names.add("Bob")\n names.add("Charlie")\n names.add("Diana")\n\n string search = "Charlie"\n integer found_at = -1\n iterate i in 0 to names.length() - 1\n if names[i] == search\n found_at = i\n break\n\n print(search + " at index: " + found_at.toString())\n\n string result = ""\n iterate name in names\n if name.length() < 5\n continue\n result = result + name + " "\n print("Long names: " + result) Charlie at index: 2\nLong names: Alice Charlie Diana break sale del bloque iterate inmediatamente — la búsqueda se detiene en cuanto se encuentra Charlie. continue salta a la siguiente iteración — los nombres de menos de 5 caracteres se saltan. Ambos funcionan en iterate-rango, iterate-lista y bucles while.
Resumen rápido
- iterate n in inicio to fin — bucle de rango, inclusivo en ambos extremos
- iterate n in inicio to fin step N — cuenta de N en N cada iteración
- iterate item in miLista — recorre cada elemento por valor
- break sale del bucle; continue salta a la siguiente iteración