#8 - Aula de Scripting Lua - Loops

Poccnn
Por Poccnn
em Aulas

Poccnn

Enquanto houver armas no mundo, haverá guerra!
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 07/03/16Posts: 1418Gênero: Masculino

Estruturas de controle

 

aulaLogo.jpg

Palavras reservadas que será usado nessa aula:

 

for, do, while, repeat, until, not, end, in

 

 

 

Iremos tratar nesta aula sobre loops.

 

Tomem muito cuidados ao usar loops, pois eles são a maior causa de travamento de sistemas.

 

Será ensinado sobre as estruturas de controle: for, while e repeat.

 

 

 

Iniciaremos pelo loop for:

 

O loop for é composto por uma expressão de controle na qual a primeira expressão é uma variável interna e a segunda são suas atribuições que podem ser feitas para percorrer uma sequencia numérica ou uma iteração de tabela, por exemplo.

 

 

 

Estrutura do for:

 

for varName = primeiroValor,ultimoValor[,atribuição] do

 

-- bloco

 

end

 

 

 

varName: seria o nome da variável, ou variáveis, que vai à receber a atribuição dos valores secundários.

 

primeiroValor: seria o número que irá começar a percorrer a sequência; essa sequência tanto pode ser positiva quanto negativa.

 

ultimoValor: seria o último valor a percorrer na sequência numérica.

 

[,atribuição]: esse é um valor que pode ser omitido, mas quando não for, serve como atribuição de valor ao percorrer a sequência numérica; quando o loop está percorrendo a sequência numérica, esse valor é atribuído ao valor anterior da sequência; essa atribuição faz com que o loop “pule” alguns valores da sequência numérica. Por padrão, esse valor é 1 (positivo), caso esteja percorrendo valores negativos, terá que declarar como atribuição um valor negativo também.

 

 

 

Exemplo de loop for usado para percorrer uma sequência numérica:

 

for x = -1,-10,-2 do print(x) end

 

>> -1

 

>> -3

 

>> -5

 

>> -7

 

>> -9

 

 

 

Veja que ele “pulou” os números: -2,-4,-6 e -8; Por quê? Porquê ao atribuir o valor ao valor anterior, ele deixa de seguir a sequência comum e passa a seguir segundo a atribuição.

 

Lembrando que o valor da atribuição pode ser omitido e que ele vale +1 (um positivo).

 

for x = 1,4 do print(x) end

 

>> 1

 

>> 2

 

>> 3

 

>> 4

 

 

 

Outra expressão muito usada no for é o uso de funções, principalmente funções iteradoras.

 

Como toda função pode retornar mais de um valor, na expressão da variável interna, podem-se declarar mais palavras que irão pegar os múltiplos valores retornados pela função, ou omiti-las como já foi demonstrado na aula sobre variáveis.

 

Enquanto a expressão for verdadeira, ele continuará executando o bloco até que a expressão se torne falsa ou ele seja terminado pelo uso da palavra break ou por um return.

 

 

 

Exemplo de um for com uma função iteradora:

 

 

iterador.jpg
46.08 KB1 downloads

 

 

 

 

O loop while:

 

 

 

Estrutura do loop while:

 

while expressão do

 

--bloco

 

end

 

 

 

Tu poderás usar qualquer tipo de expressão válida em lua.

 

A maior diferença entre esse loop e o for é a falta da variável interna que consta no loop for.

 

Enquanto a expressão for verdadeira, ele continuará executando o bloco até que a expressão se torne falsa ou ele seja terminado pelo uso da palavra break ou por um return.

 

 

 

Exemplo de uso de um loop while:

 

         local ttm = 0

 

         while (ttm < 60) do       ttm = ttm + 1       end

 

 

 

Uma pratica em programação é não por expressão no loop while, mas por algo que seja verdadeiro no lugar, forçando assim que tu tenhas que parar o loop dentro do bloco.

 

local x = 0

 

while true do -- loop infinito

 

         if x > 9 then break end -- controle para parar o loop

 

         x = x + 1

 

end

 

 

 

O loop repeat:

 

 

 

O loop repeat segue o conceito oposto dos demais. Ao invés dele continuar executando enquanto a expressão for verdadeira, ele só continua executando enquanto a expressão for falsa e parando quando ela for verdadeira; ou caso seja finalizada pelo uso da palavra break ou return.

 

 

 

A estrutura do loop repeat:

 

repeat

 

--bloco

 

until expressão

 

O loop repeat cria o bloco e sua expressão de controle fica após a palavra until que serve como “end” dos demais loops.

 

 

 

Exemplo de uso do loop repeat:

 

local x = 0

 

repeat

 

print(x)

 

x = x + 1

 

until not (x < 10)

 

 

No código criado por vocês nas aulas anteriores, adicionem loops dos três tipos.

 

Inté a próxima aula.

 

 

"Deus é amor, mas matou 99,99999% de todos os seres viventes do mundo com o diluvio.

Deus é misericórdia, mas condena as pessoas ao tormento eterno do inferno.

Deus é pai, mas abandonou seus filhos a servidão.

Deus é vida, mas condenou a humanidade a morte.

Deus é o senhor. Senhor das guerras, da morte, do ódio.

 

Ninguém que ame a humanidade, mataria 99,99999% da população, não só de humanos, bem como dos demais animais, por amor. Isso não é amor, é doença, psicose de um sádico que gosta de ver sua 'criação' sofrer e ainda quer 'pagar' de misericordioso, de deus amor.

 

Não quero seu amor; não quero sua misericórdia, não quero ser seu filho, não quero sua vida, não quero que seja meu senhor.

Tu és um psicótico, doente, hipócrita, assassino; não me venha querer se passar por bondoso, amoroso, misericordioso."

Wesley Cajueiro

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 22/06/17Posts: 9Gênero: Masculino

Mim surpreendo a canda vez mais com mlk, Parabéns