Sign in to follow this  
.Dev

[CURSO] Básico de Lua 02

Recommended Posts

Post Anterior: 

 

Eai pessoal tudo bom? Continuando o Curso básico, hoje vamos falar sobre Condicionais, Iteração e Variáveis:

Para vocês irem se familiarizando eu vou começar a utilizar trechos de código em Lua.

 

Nos exemplos anteriores além de utilizamos apenas linguagem padrão, e portugol, nos utilizamos apenas execuções sequenciais, ou seja, o algoritmo poderia apenas executar uma vez, e em uma sequencia, da linha 01 até a última, mesmo com o exemplo básico de verificação que nos fizemos, ainda sim, era uma execução sequencial. Para mudar isso, vou apresentar a vocês os principais condicionais e como utilizar o mesmo, e uma breve explicação sobre variáveis.

Vamos começar pelas variáveis que são mais simples em grande parte. Diferente de outras linguagem as variáveis de Lua não são de tipo fixo, elas podem receber qualquer tipo de valor, as mesmo assim, elas respeitam a logica de combinação como por exemplo:

local nome = "Dev" -- Atribuímos a um espaço de memoria o valor "Dev" e nomeamos esse espaço como "nome".
local numero = 1   -- Atribuímos a um espaço de memoria o valor "1" e nomeamos esse espaço como "numero".

 

Se fossemos utilizar outra linguagem, como C por exemplo, nos teríamos que definir o tipo de variavel, por exemplo:

char nome = "dev";
int numero = 1;

 

Em C no caso nós devemos nos prender a sintaxe padrão, e a utilização dos tipos:

 

Sintaxe:

<tipo>  <nome_da_variável> ;

 

int: armazena valores numéricos inteiros.

char: armazena caracteres.

float: armazena números com ponto flutuante (reais) com precisão simples.

double: armazena números com ponto flutuante, com precisão dupla, ou seja normalmente possui o dobro da capacidade de uma variável do tipo float.

 

E os principais tipos de dados seriam:

 

Inteiro: armazena números inteiros

Real: armazena números com casas decimais, são as variáveis de ponto flutuante;

 

No caso de Lua essa lógica ainda existe. E ainda podemos armazenar dados do tipo Boolean (true/false) & nil.

    

Como vocês puderam perceber as variáveis em Lua, funcionam de uma maneira muito pratica, porque você simples insere o valor nela, e automaticamente, ela entende o tipo e organiza a memoria dessa forma. Tendo isso em mente, vamos a algum exemplos básicos.

    

Iguais combinam com iguais. Isso significa que se eu puxar a minha variável dev e a variável numero, e tentar unir as duas vai retornar um erro, pelo fato do tipo das duas serem diferentes.

 

Imagem ilustratva: https://imgur.com/a/n0u9pL5

    

Para executar o print(dev + numero), teríamos que modificar o valor de numero para uma string. Com a utilização de tostring(numero); Para mudar o tipo de inteiro para string.

Prestem atenção nisso, porque um numero pode ser um string por exemplo local numero = "1"; no caso esse 1 seria uma string e não um numero, oque impossibilitaria operações matemáticas com o mesmo.

Nesse caso também poderia usar o tonumber(numero); para mudar o tipo. Caso tenham duvida sobre o valor de uma variável podem utilizar type(var); para saber qual tipo ela seria, por exemplo:

   

local num = 1;         --> Number/Integer 
local nam = "2";       --> String
local status = false   --> Boolean

    

Caso desse um print(type(var)); e cada uma dessas receberia os valores citados acima. Caso você tente utilizar em uma var que não foi atribuída ira retornar o valor nil que significa que não há nada ali, não tem memoria atribuída nem valor a essa var.

Condicionais 

Iniciando em condicionais vamos começar pela mais usada e básica de todas o if. O if funciona da seguinte maneira:

    

if expressão_lógica then
    -- bloco de comandos
end

    

**Lembrando, o IF deve sempre ser fechado com o END, não se esqueçam disso.**

    

Se ficar mais facil pode-se ler if como SE, então ficaria da seguinte forma SE expressão_lógica ENTÂO.

 

Agora oque seria essa expressão lógica? Essa é a verificação que deve ser executada antes de se dar continuidade ao código, no nosso exemplo em linguagem padrão nos utilizamos o SE o relógio marcar = 6:30 ENTÂO, no caso a expressão_lógica será relógio marcar = 6:30 que só poderia retornar true ou false, no caso de uma verificação o valor true é sempre tido como condição principal a não ser que você exemplifique o contrario por exemplo:

local nome = "dev";

if nome then 
    -- código 
end 

 

A verificação aqui é simples, SE existir nome ENTÂO. Porque a condição é true, agora eu poderia usar:

local nome = "dev";

if not nome then 
    -- código 
end 

 

A verificação aqui é ao contrario da anterior, no estamos utilização a condição not como negação a existência da var então ficaria SE NÂO existir nome ENTÂO.

 

Para vocês terem uma ideia melhor das expressão_lógicas vamos listar cada uma delas:

Igual a          | == | -- Verifica se os valores são iguais.
Diferente de     | ~= | -- Verifica se os valores são diferentes.
Maior que        | >  | -- Verifica se o 1 valor é maior que o 2.
Menor que        | <  | -- Verifica se o 1 valor é menor que o 2.
Maior ou igual a | >= | -- Verifica se o 1 valor é maior OU igual ao 2.
Menor ou igual a | <= | -- Verifica se o 1 valor é menor OU igual ao 2.

 

As principais são true e false, exemplos:

local x = 10;
local y = 50;

if x == y then -- Aqui estamos verificando se X é igual a Y, oque obviamente é uma mentira então o retorno será false, e o código abaixo não será executado.

if x > y then  -- Aqui também estamos em uma verificação False, portanto o código não ira executar, porem se usarmos not 

if not x > y then -- Aqui no caso o retorno é verdadeiro, então o código abaixo ira executar.

 

Outro tipo de condição que nos podemos usar são os de concatenação:

Conjunçã| and | -- Verifica se duas ou mais condições são atendidas.
Disjunçã| or  | -- Verifica se uma ou qualquer outra condição é atendida.
Negação   | not | -- Verifica se alguma condição não é atendida.

 

Alguns exemplos:

local x = 10;
local y = 50;
local nome = "dev";
local status = true;

if nome == "dev" and status == true then -- Aqui verificamos se a var nome possui o valor "dev", e se a var status possui true, caso ambas sejam atendidas, o código executa.

if status == false or x < y then -- Aqui estamos verificando se alguma das condições são verdadeiras, no caso o x é < que o y então o código executa.

if not status == true or x > y or type(nome) == string then -- Aqui estamos passando mais de uma verificação com o OR e caso alguma delas seja verdadeira o código ira executar.

 

Com essa regras básica em mente, eu sugiro que vocês, façam códigos simples utilizando esses conceitos para gravarem eles melhor.

 

Continuando a falar sobre o if. O if ainda possui uma condição negativa por padrão que é chamada de else, da seguinte forma:

if expressão_lógica then
    -- Bloco de comandos
else
    -- Bloco de comandos
end

       

Dessa vez no fazemos uma verificação e caso ela não seja atendida nos executando outro bloco de código por exemplo:

local x = 10;
local y = 50;

if x > y then 
    print('X é maior que Y')
else 
    print('X é menor que Y')
end 

 

Nesse caso nossa verificação não ira retornar true porque x não é maior que y, então o bloco 1 do código não será executado, porem com o else, o bloco dois será.

 

Ainda no IF no temos o elseif que é uma segunda condicional dentro da primeira por exemplo:

local x = 10;
local y = 50;

if x > y then 
    print('X é maior que Y')
else 
    print('X é menor que Y')
end 

 

Nesse caso nossa verificação não ira retornar true porque x não é maior que y, então o bloco 1 do código não será executado, porem com o else, o bloco dois será.

 

Ainda no IF no temos o elseif que é uma segunda condicional dentro da primeira por exemplo:

local x == 10;
local y == 50;

if x > y then 
    -- bloco 1
elseif x < y then 
    -- bloco 2
else 
    -- bloco 3
end 

 

Nesse caso a primeira verificação é falsa, então a sequencia continua, a segunda verificação retorna true e então é executada, caso nenhuma das duas seja true, seria executado o bloco 3 do else.

 

** Lembrando o elseif sempre vem ante do else, e não tem limite de uso, apesar de não ser uma boa pratica de programação, enfiar um monte de if/elseif no código.**

 

 Iterações 

 

As iterações são estruturas de repetição, elas são o for / while e repeat. Vamos começar pelo while e repeat que são bem semelhantes:

a sintaxe do while consiste em:

    

while condiçãdo 
    -- código 
end 

    

Seguindo essa lógica a condição de entrada em um loop de while é definida antes do inicio. Para ficar mais simples pode-se ler while como:

    

ENQUANTO condição FAÇA 

    -- código 

FIM 

    

Vamos ao exemplo:

    

local x = 1;
local y = 10;

while x < y do 
    x = x + 1
end 

    

Nesse caso estamos executando um loop, da seguinte forma: 

ENQUANTO x for menor que Y FAÇA

    PEGUE x e Adicione X + 1

FIM 

    

Caso a gente desse um print(x) nesse caso a saida seria:

    

1

2

3

... Até o 10.

    

Ou seja o while significa **repita tal ação até que a condição seja verdadeira.**

    

o repeat funciona semelhante ao while porem a condição de saida/verificação é posta no final, com a seguinte sintaxe:

    

repeat 
    -- bloco de código
until(condição)

 

Vamos usar o mesmo exemplo acima:

local x = 1;
local y = 10;

repeat 
    print(x)
    x = x + 1
until(== y)

 

O for pode ser ler PARA valor, max/min incremento FAÇA, a diferença do for para o while/repeat é que o for você tem um numero máximo e mínimo de execuções, que deve ser definidas no inicio da condicional por exemplo:

for i=1, 10, 1 do 
    print(i)
end 

 

Aqui vamos ir do 1 ao 10 somando sempre 1 ao numero anterior, com uma saída de 1,2,3,4,5..10. Poderíamos utilizar 2, 3, -1 e qual numero quiséssemos no acréscimo

Dentro de variáveis ainda temos os Arrays (tabelas), mas vou deixar para explicar depois de funções, já que tabelas em luas são bem extensas e com muitas funcionalidades.

 

Exercícios

 

1. Faça um programa que verifique as medias dos alunos, em 2 cursos, e retorne aprovado ou reprovado baseado em média geral superior a 5.

2. Faça um programa que se repete até uma condição numérica retorne verdadeira, condição essa superior a 10.

3. Faça um programa que imprima na tela, tipos de variáveis utilizando um for.

4. Faça um programa que muda o tipo de variáveis e imprima elas.

5. Faça um programa que leia oque o usuário digitou e retorne na tela.

 

Site que podem ser Uteis: 

https://www.Lua.org/portugues.html   

https://www.tutorialspoint.com/Lua/index.htm

Caso queiram, podem postar o código nesse tópico, e caso tenham alguma duvida, deixem logo a baixo. Só lembrando ao pessoal que já entende do assunto, ou pelo menos sabe o básico, vamos ajudar quem ta começando, todo mundo começou sem saber quase nada.

Parte 03: 

 

Edited by .Dev
  • Like 4
  • Thanks 1

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.