Ir para conteúdo

ShadowClown

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    ShadowClown deu reputação a MaXwEllDeN em [Aula 7, Parte I] Estruturas de Controle   
    << Aula 6 - Escopo
    Estruturas de controle
    Aula 7
    Bem-vindos à Aula 7 (Da sorte). Hoje iremos aprender mais uma coisa importantíssima na área de scripting e programação em geral: as Estruturas de Controle. Bem, Estruturas de Controle definem o andamento do script. Para entendermos melhor, vamos ver o algoritmo de uma Estrutura de Controle simples:
    Veja, agora um em lua:
    Compare as cores do script em Lua com o escrito em português. Nossa Estrutura de Controle se chama condição, iniciada por if (se). Para entendermos basta traduzir.
    Veja como se usa o if:
    Citado acima, true seria o que vai ser verificado, exemplo:
    Antes de prosseguir, vamos ver o que são essas "coisas" em roxo.
    Essas "coisas" se chamam Operadores Relacionais, e vão verificar se a condição é verdadeira. Se for, então vai ser executado o código. Se não, então o código será pulado e o script continuará rodando a partir do fim do escopo da condição (end). Os operadores relacionais são: Igualdade (==), Diferença (~=), Superioridade Absoluta (>), Inferioridade Absoluta (<), Superioridade (>=) e Inferioridade (<=).
    Os operadores relacionais sempre retornarão um booleano, ou seja, true ou false. Se a condição for verdadeira então retornará true. Se for falsa retornará false. Você pode comprovar isto tentando:
      print(1 == 1) print(1 == 2) Veja como usar os operadores relacionais:
    Bom veja aqui alguns exemplos e em seguida a explicação de o que vai acontecer.
      local nome = 'Mock' if nome == 'Mock' then numero = 7 if numero == 8 then print('Nosssa!') end end Explicação:
      Declaramos a variável nome como = a 'Mock' Se o nome é igual a 'Mock' entao... Declaramos a variável numero igual a 7 Se numero for = a 8 entao Mostrar o texto: 'Nosssa!' Fim da verificação do numero Fim da verificação do nome. O que iria acontecer? a variável nome seria declarada, passaria pela verificação pois nome é igual a Mock o número 7 seria declarado mas não iria mostrar o texto pois numero vale 7 e não 8 Else Agora que ja sabemos abrir um if vamos ver a else (se nao.) Como vocês já sabem como abrir um if a explicação aqui não vai ser longa. Para evitarmos isso:
      if numero == 8 then print('foi') end if numero ~= 8 then print('nem foi') end Usamos a expressao else, Veja a syntax.
    Um exemplo no uso acima.
      if numero == 8 then print('foi') else print('nem foi') end No caso, caso a verificação seja falsa (quando numero não é ? ele pulará o escopo 1 mais parará no else e executara o escopo 1 de baixo. Elseif Essa é uma junção de um else com um if, muito usado em NPCs antigos, seria a mesma coisa acima acontece que quando encontra o elseif ao contrario do else ele não executa o escopo direto ele permite outra verificação. Veja a sintaxe.
    Podendo conter apenas UM else no final também. Veja o exemplo:
      if numero == 8 then print('oia meu numero e um oito!') elseif numero == 5 then print('omg meu numero é um 5') elseif numero == 3 then print('mintira é um 3') else print('affff meu numero nem é 8 5 ou 3 ') end Você pode usar quanto elseif's quiser.
     
     
    and/or
    São parte do (bloco), elas definem as palavras e, ou, veja um exemplo:
     
     
    if sex == 5 and nome == 'pedro' then print('tenso') end  
    Ele so executará o escopo 1 se sex for 5 e o nome for pedro.
      if sex == 5 or nome == 'pedro' then print('tenso') end Nesse caso ele executará o escopo 1 se sex for 5 OU o nome for pedro. Podemos unir os 2 e separar por parênteses
      if (sex == 5 and nome == 'pedro') or (animal == 'urso') then print('tenso³²²³¹³²¹³²¹') end primeiro o script vai verificar o 1º bloco. (sex == 5 and nome == 'pedro') Ele vai ver se sexo é 5 e nome for Pedro. Caso seja verdadeiro ele vai passar para o próximo, caso tenha um or ele simplesmente vai parar a verificação e ir direto para o escopo abaixo. Agora supondo que sex era 4, ele vai retornar negativo e então ao invés de parar tudo e ir para o else ou o elseif ele vai ver que tem um or e então verificar o bloco 2 (animal == 'urso') uma verificação simples, se animal for urso ele vai pro escopo, se não for ele pula o escopo.
     
    Extra!
    Um conteúdo extra dessa aula. Sabia que or não é apenas usado em if's?
     
    Vamos simular um caso de um script com 2 variáveis, nome e player, a variável nome vale um string: 'Ixe nem deu.' e a variável player não vale nada ela é nil, (pense que não existe).
     
    Agora o que aconteceria se colocássemos para mostrar a variável player com o print? Daria um erro! mais existe uma maneira rápida e fácil de se evitar isso. Assim:
      print(player or nome) OmG mock que que tu fez? Eu mandei printar a variável player, porem antes o script verifica, já que tem o or ele vê qual é o valor da variável player, se for nil ele vai printar a variável nome! Segue o code:
      nome = 'pedro' var = nil numero = 774 pk = false numero2 = 89 você tem essas variaveis. Fassa o seguinte:
    Resposta:
    Aula escrita por um urso gordo Mock, todos os créditos são dele.
    Aula 8 - Loops: while e repeat >>

Informação Importante

Confirmação de Termo