Lua Logo
bucles

La palabra bucle nos dice ya mucho. Esto se hace todo que allá en eso está muchas veces exportado

nach obenbucle - for (la forma numérica)


Die bucle - for tiene dos formas. Discutimos la primera ahora y la segunda si sabemos más sobre Tables.

¿Que está arriba(encima)?

for variable = comienza, acaba, vastoDeSalto do
Bloque
end

Tenemos:
  • una variable
  • un principio
  • un final
  • y una lejanía de salto


bucle - for cuenta del principio saliendo hasta el final cada vez la lejanía de salto entre los variables con eso. Exporta luego el bloque(la manzana) y examina en end de modo llegado si a la variable semejante al final es. Si esto no es el caso se suelta(se dispara) todo de por delante. ¡Esto debe entender a alguien!



Si hacemos un ejemplo:

comienza = 5; acaba = 11; vastoDeSalto= 0.5; -- se tiene en cuenta: El signo decimal es un punto

Como bloque nos dejamos imprimir la variable.

for i = 5, 11, 0.5 do
print(i)
end


Si hacemos una vez más una imagencita




Como primero es impreso 5. Aha, él no cuenta la lejanía de salto en la primera vez entre ello.
Luego él cuenta cada vez entre nuestros variables que se llama i 0.5 con eso. Si el bucle ha llegado en 11, ella termina.
Para controlar he dado después de la cinta(después del lazo) todavía la instrucción imprimir el "final". Yo tampoco cree todo.


Lo todo va naturalmente también hacia atrás. Queremos contar de 11 después de 5. ¿Que hacemos luego con la lejanía de salto? Si a 11 0.5 con eso figuramos tenemos 11.5. Esto no funciona. Debemos 0.5 abziehen. ¿Cómo lo hacemos?

lo tomamos "-"

Sirve para la negación de valores
De más se hace menos e invertido(y contrario).

c = - a

wenn a == 2, dann c == -2

Usábamos el nuestro arriba(encima) mencionado (una vez más-)
Con eso cerramos(volvemos) el signo de la lejanía de salto alrededor de y contamos luego cada vez-0.5 entre 11.
¿Por qué éste explica(declara) I... ¿así kompliziert? Esto tiene ya sus causas. Ahora pocos detalladamente, por ello más tarde más fácilmente.

for i = 11, 5, -0.5 do
print(i)
end

Ahora: los pasos

  • 11 más -0.5 = 10.5 --> el impreso --> 10.5
  • 10.5 más -0.5 = 10 --> el impreso --> 10
  • ...
  • ...
  • ...
  • 5.5 más -0.5 = 5 --> el impreso --> 5
  • Ende


Esta vez sin imagencita. Mismo prueban.


Esta vez sin imagencita. Mismo prueban.


Lo que aún no sabíamos: Nuestra variable, que hemos llamado aquí i, es una variable locale en este bloque(manzana). Esto no se la llama más al exterior de modo existido.
Si hacer probamos una vez en vez de print (el "final") print (i). Allí somos fuera del bloque(fuera de la manzana).

Era \'s.


nach obenbucle - while

while se llama durante o tan mucho tiempo

while condicicn do
Bloque
end

Mientras que la condición está llenada hace el bloque(la manzana). En el fin de vuelta esto se llama: si la condición no está llenada más, luego termina.


Der Reihe nach:
  • 1. esto es examinado si la condición está llenada
  • 2. si ella está llenada , el bloque es exportado
  • 2.1 luego es examinado de nuevo en end si la condición está llenada
  • 2.2 ella está todavía llenada, el bloque es exportado una vez más (atrás a 2).
  • 2.3 ella no está llenada más, luego es el final

Como ejemplo transformamos el nuestro bucle - for ahora una vez en una un bucle - while.

while i <= 11 do
print (i)
end

Si el programa viene ahora en el bucle en di él enseguida: " I no hay "
Si le hacemos todavía a una variable

i = 5 -- es nuestro principio

antes de que vivamos(experimentemos) todavía una quiebra, los contar nosotros ella riñe también directamente.

i = i + 0.5


Sólo ¿dónde lo empaquetamos(hacemos) hacia allá, para que esto haga lo igual como en bucle - for?
Esto debe detrás del nuestro print - la orden, dado que él imprime al principio 5 en for.

Por eso:

i = 5
while i <= 11 do
print (i)
i = i + 0.5
end

Probamos en el editor y véase allí, esto funciona.

¿Que pasa ahora exactamente(precisamente)?

  • Antes de la cinta(Antes del lazo) de modo llegado la variable i es puesta en el valor 5
  • Llegado en el bucle es examinado si 5 son más un poquito o justo 11 . ¡Esto es!
  • Dado que esto es, es impreso --> 5
  • ¿Luego ??? ¿Paradoxon? No, ninguno es . Con eso debíamos saber que con una operación de modo pasado.
  • Esta operación es un Addition. El ordenador se carga al principio el valor de i ( en el primer por 5) en algún espacio de memoria, luego él suma esta copia el valor 0.5 con eso. Él almacena el resultado luego en el espacio de memoria original de los variables i. De este momento la variable i el valor 5.5 tiene
  • En end de modo llegado es examinado si 5.5 son más un poquito o justo 11. ¡Esto es!
Algún día no es más pequeño más i o justo 11. Luego es el final

Cuando el ejercicio hacen la otra cinta(lazo). Con Herunterzählen.


Uff todavía uno. ¿Que nos espera allá bien? No mucho.

nach obenbucle - repeat
repeat se llama repite
until se llama hasta

repeat
Bloque
until laCondicion

En el fondo es repeat - el bucle inmediatamente como while - el bucle.
Sólo con una diferencia sin embargo fina pequeña. Se podría verlo en realidad.
La condición está abajo. Esto se llama, por un lado, el bucle se hace al contrario de while - desgastan por lo menos una vez el bucle. Por otro lado la condición tiene que parecer también un poco de otra manera para conseguir(llegar) lo igual.

Tomo antes lo primero, lo segundo es un ejercicio.

i = 5
repeat
print (i)
i = i + 0.5
until i > 11

Aquí el bucle es llevada a cabo hasta una condición está llenado. (aquí si i es más que 11)
En while - el bucle. Si el bucle pasará mientras una condición está llenada.
La multiplicación de las informaciones contenidas en estos lados(costados) y los artes gráficos(los dibujos) está prohibida, de modo destripado(excluido) de eso es todo el código de manantial indicado en estos lados(costados).
Véase también: Fin de cerda de responsabilidad
Copyright © Robert Schmitz 2006