Ir para conteúdo

#8 - Aula de Scripting Lua - Loops


Poccnn

Posts Recomendados

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

 

 

 

 

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.

 

 

Editado por Poccnn
Link para o comentário
Compartilhar em outros sites

  • Poccnn featured e pinned this tópico
  • 1 month later...
×
×
  • Criar Novo...