31 de ago. de 2009

Lua - Variáveis e Estruturas de Controle

Após o nosso primeiro post que explicava como preparar um ambiente para desenvolvimento em Lua, iremos falar hoje sobre variáveis e estruturas de controle. Variáveis Variáveis, conforme descrição do Wikipedia, é um objeto que representa valor ou uma expressão matemática. Não existem dados primitivos em Lua, portanto, ao declarar uma variável, ela poderá ser utilizada tanto para dados númericos, como texto e valores booleanos. A única exeção são tabelas que precisam ser declaradas de uma forma especial. Em Lua temos três tipos de variáveis: Globais, Locais e Table. Toda variável, ao ser declarada é determinada como global, a não ser que, seja explicitamente definida como local. Antes da primeira atribuição, uma variável possui o valor nil. Sendo assim, podemos realizar o seguinte teste:


print(variavel1)

variavel1 = 'Ola, como vai?'

print(variavel1)


Ao executar o script acima, percebemos que no primeiro print, a variável possui valor nulo. No segundo print, a variável possui o valor determinado na segunda linha. Variáveis locais tendem a existir apenas dentro do seu escopo. Sua declaração é definida pela palavra chave local. Um exemplo de declaração de uma variável local seria:

local variavel2


Uma outra forma de declarar variáveis globais e locais seria atribuindo o valor durante a declaração:


variavel3 = 'Versao Digital'

local variavel4 = 'Linguagem Brasileira: Lua'

É possível ainda atribuir valores a várias variáveis em uma mesma linha:

variavel5, variavel6, variavel7 = 'Cachorro','Gato',3.14

No exemplo acima atribuimos dois textos as duas primeiras variáveis e um valor numérico na última variável A table por ser uma estrutura especial, dedicaremos um post futuro apenas para ela. Estruturas de Controle Lua possui quatro estruturas de controle: if, while, repeat e for if A estrutura if, executa um bloco de comandos apenas se uma sentença é verdadeira. Sua sintaxe é a seguinte:

if {sentença} then

{bloco de comandos}

elseif {sentença} then

{bloco de comandos}

else

{bloco de comandos}

end

Um exemplo simples é testar se o conteúdo de uma variável maior ou menor que um determinado número.

print('Digite um numero: \n')

local var1 = io.read("*number")

if var1 > 5 then

print('var1 e maior que 5.')

elseif var1 < 5 then

print('var1 e menor que 5')

else

print('var1 e igual a 5')

end

while A estrutura while, irá executar o bloco de comandos enquanto a sentença for verdadeira. Sua sintaxe é a seguinte:

while {sentença} do

{bloco de comandos}

end

No exemplo a seguir, o bloco de comando irá ser executado enquanto o valor da variável for menor que 10.

local var1 = 0


while var1 < 10 do

print('O valor de var1 e: '..var1)

var1 = var1 + 1

end

repeat A idéia do repeat é a mesma do while, no entanto, o teste para verificação se a sentença é verdadeira é realizado após a execução do bloco de comandos, ou seja, caso a sentença seja verdadeira inicialmente, o bloco de comandos será executado pelo menos uma vez.

repeat

{bloco de comandos}

until {sentença}

Sabendo desta diferença, vamos executar o mesmo exemplo anterior, adaptado para o repeat.

local var1 = 0


repeat

print('O valor de var1 e: '..var1)

var1 = var1 + 1

until var1 > 10

Compare os dois exemplos e veja se o resultado final, apesar da semelhança das estruturas, é o mesmo. for A estrutura de controle for irá executar um bloco de comandos, enquanto uma variável de controle varia de acordo com uma progressão aritimética. Sua sintaxe é:

for {sentença} do

{bloco de comandos}

end

Um exemplo simples é a interação de uma variável dentro de um intervalo numérico e a impressão do seu valor, assim como fizemos no while e no repeat.

for var1 = 1, 10 do

print('O valor de var1 e: '..var1)

end


Durante este post, utilizamos algumas funções, que você pode não estar familiarizado, vamos a elas: print() - Esta função é utilizada para imprimir na tela o valor de uma variável ou uma string. io.read() - Esta função inclui uma pausa na execução do programa e aguarda o pressionamento de uma tecla para retomar a execução da aplicação. Os dois pontos, utilizados na maioria dos exemplos, é o operador que indica concatenação. Com isso finalizamos mais um post. No próximo post falaremos de table.



Saiba Mais


Preparando um ambiente de desenvolvimento


Manual de Referência Lua

Um comentário:

Unknown disse...

muito boa a explicação...tenho gostado cada vez mais da lp LUA!!!...huahuauha...
apesar do manual ser bem explicativo tbm é legal ver que outras pessoas tbm estudam essa linguagem...
valeu...e parabens