SSGamers - 13 Anos online por você.

#SSGamers - A Comunidade que mais crescer no brasil!

Participe do fórum, é rápido e fácil

SSGamers - 13 Anos online por você.

#SSGamers - A Comunidade que mais crescer no brasil!

SSGamers - 13 Anos online por você.

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Chegou o novo tema 6.5.5 - SSGamers - Servidores online de qualidade - Aproveite e entre para nossa comunidade, inscreva-se já! - Ouça nossa web radio - Veja nossas novidades - Participe dos nossos setores de jogos online - Parcerias aberta fale já com um administrador.

    [TUTORIAL] - Usando Loops

    Weslley_Script
    Weslley_Script
    SS - Fundador
    SS - Fundador


    Steam Steam : WeslleySSGames
    Zello : WeslleySSGames
    Mensagens : 11643
    Moedas : 1032951
    Data de inscrição : 06/10/2011
    Idade : 29
    Localização : Brasil

    [TUTORIAL] - Usando Loops Empty [TUTORIAL] - Usando Loops

    Mensagem por Weslley_Script Sex 23 Nov 2012 - 10:26

    [size=150]Tutorial
    Usando Loops (Avançado)[/size]


    [size=150]Índice[/size]
    [*]O que é um Loop?
    [*]Porque usar Loop?
    [*]Formas de usar um Loop.


    for
    while
    do

    [*]Funções para usar em Loops.

    break
    continue
    goto
    sleep

    [*]FAQ
    [*]Créditos.


    [size=150]O que é um Loop?[/size]

    Loop, é uma forma de dar 'voltas' sobre um valor, uma diretiva, uma variável, dentre outras. O Loop vai ficar dando 'voltas' na função definida até ele ser pausado, chegar ao final, ou achar um valor definido. (Ou seja um código criado para ser executado mais de 1 vez.)

    [size=150]Porque usar um Loop?[/size]

    Geralmente, um loop é usado para procurar um valor dentro uma função. Mas, ele tem muitas outras utilidades, que será explicada no decorrer deste tutorial.

    [size=150]Formas de usar um Loop.[/size]

    Atualmente, só tem três formas padrões do SA:MP de criar loops. Elas são: for, do, while.
    Existem outras como o foreach do Y_Less.

    Exemplos de como usar um loop for:

    O for é o loop mais conhecido e mais usado, ele é o mais simples e pode ser usado em qualquer ocasião, sem restrições, desde que seja necessário.

    Exemplo:
    Código:
    for(new Lp; Lp < 10; Lp++)
    {
          printf("%i", Lp);
    }

    Explicação: O Loop vai dar voltas na variável Lp, enquanto ela for menor que 10, que é o valor colocado para o Loop dar voltas.

    Desta forma, o Loop vai nos 'printar' em nosso console:

    Código:
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9

    Ele inicia-se do 0 porque as variáveis, de padrão, se inicia em 0 e só vai acabar quando a variável Lp for menor do que 10, sendo assim, 9.

    Exemplos de como usar um loop while:

    O while é um loop e um auxiliar, ele tanto serve para executar-se independente, como para auxiliar o loop do a fazer sua execução. O while, diferente do for, não pode definir uma variável dentro de si, para executar um loop sob ela, a variável deve ser definida antes dele ser executado.

    Exemplo:
    Código:
    new i;
    while(i < 10)
    {
          printf("%i", i);
          i++;
    }

    Explicação: O Loop vai dar voltas na variável i, enquanto ela for menor que 10, que é o valor colocado para o Loop dar voltas.

    Desta forma, o Loop vai nos 'printar' em nosso console:

    Código:
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9

    Ele inicia-se do 0 porque as variáveis, de padrão, se inicia em 0 e só vai acabar quando a variável i for menor do que 10, sendo assim, 9.

    Exemplos de como usar um loop do:

    O do é um loop, porém, ao contrário do for e do while, que são independentes para se executar, o do, precisa do while para verificação e execução.

    Exemplo:
    Código:
    new a;
    do
    {
          printf("%i", a);
          a++;
    }
    while(a < 10);

    Explicação: O Loop vai dar voltas na variável a, enquanto ela for menor que 10, que é o valor colocado para o Loop dar voltas.

    Desta forma, o Loop vai nos 'printar' em nosso console:

    Código:
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9

    Ele inicia-se do 0 porque as variáveis, de padrão, se inicia em 0 e só vai acabar quando a variável a for menor do que 10, sendo assim, 9.

    [size=150]Formas de usar um Loop.[/size]

    Atualmente, só tem quatro funções padrões do SA:MP que possam, parar, ir, pular e pausar um Loop. Porém, o Pawno, não é amplo o bastante para que a função de 'pausar' seja executada com sucesso, atualmente ela faz parar. (Em meus testes ela faz parar e não pausar um loop, se eu estiver usando errado, me corrijam).

    Vou dar todos os exemplos no loop for, porém podem ser usados em todos loops.

    Como usar o break
    Código:
    for(new i; i < 10; i++)
    {
          if(i == 5) break;
          printf("%i", i);
    }

    Explicação: O Loop vai dar voltas na variável i, e se(if) ela for igual a 5, ele vai executar o break.

    Desta forma, o Loop vai nos 'printar' em nosso console:

    Código:
    0
    1
    2
    3
    4

    Pois, ela vai partir de 0 até 5, quando chegar em 5, vai executar o break e vai parar a execução, porém, não vai executar o 5, porque o loop já vai estar parado.

    Como usar o continue
    Código:
    for(new i; i < 10; i++)
    {
          if(i == 5) continue;
          printf("%i", i);
    }

    Explicação: O Loop vai dar voltas na variável i, e se(if) ela for igual a 5, ele vai executar o continue.

    Desta forma, o Loop vai nos 'printar' em nosso console:

    Código:
    0
    1
    2
    3
    4
    6
    7
    8
    9

    Pois, ela vai partir de 0 até 5, quando chegar em 5, vai executar o continue e vai continuar a execução a partir de 5 até chegar em 9 que é o valor menor que 10(que foi pedido para executar).

    Como usar o goto
    Código:
    for(new i; i < 10; i++)
    {
        Inicio: // Indica o inicio do loop
        if(random(5) == 0) i = 1; // Se o random(5) for igual a 0, ele vai setar a variável i para 1
        else i = 0; // Ou se o random(5) for igual a 1, 2, 3, 4 ou 5, ele vai setar a variável i para 0
        if(i == 1) // Se a variável i for igual a 1
        {
            print("A variável i é Verdadeira"); // Vai printar no console "A variável i é Verdadeira"
            goto Final; // E vai ir para o final, ou seja, vai acabar o loop.
        }
        else // Ou se a variável i for igual a 0
        {
            print("A variável i é Falsa"); // Vai printar no console "A variável i é Falsa"
            goto Inicio; // E vai ir pro inicio, girando o loop denovo, até a variável i for igual a 1 e ir até o final do loop.
        }
    }
    Final: // indica o final do loop.

    Explicação: Está nos comentários acima.

    Desta forma, o Loop vai nos 'printar' em nosso console, algo como isso(depende da sorte do random):

    Código:
    A variável i é Falsa
    A variável i é Falsa
    A variável i é Falsa
    A variável i é Falsa
    A variável i é Falsa
    A variável i é Verdadeira

    Pois, ela vai fazer o random, e quando o random atingir o número 0 vai setar para a variável i o valor 1(verdadeiro) e vai parar o loop, porque vai ir(goto) até o final, mas, se o random não for igual a 0, ele vai setar o valor 0 para a variável i, e vai ir(goto) até o inicio, fazendo o loop girar novamente até o random ser igual a 0 que vai setar o valor 1 para a variável i, assim, finalizando o loop.

    Como usar o sleep
    Código:
    for(new i; i < 10; i++)
    {
        if(i == 5) sleep(1000);
        printf("%i", i);
    }

    Explicação: Era para girar o loop até chegar no 5, e quando chegasse no 5, pausar o loop por 1 segundo(em milessegundos), porém a estrutura do Pawno, não nos permite isso, e está parando o loop.

    Desta forma, o Loop vai nos 'printar' em nosso console:

    Código:
    0
    1
    2
    3
    4

    [size=150]FAQ[/size]

    Pergunta: Eu já sabia disso tudo, não preciso ler isso.
    Resposta: Então, ignore tudo.

    Pergunta: Como criar um Loop infinito?
    Resposta: Simples:

    Código:
    for(;;) print("Loop Infinito");

    Código:
    while(true) print("Loop Infinito");

    Código:
    do
    {
        print("Loop Infinito");
    }
    while(true);

    Porém, todas irá dar um ou dois warnings, mas, será loop infinito.

    [size=150]Créditos[/size]

    DreeH - Criação total do tutorial.
    Wiki SA:MP - A maioria do tutorial foi tirado de lá.
    SA:MP Team.

    * Dei algumas editadas/corrigidas em alguns textos, para melhor entendimento

      Data/hora atual: Ter 26 Nov 2024 - 1:41