16.10.2011, 19:48
(
Last edited by DreeH; 25/11/2011 at 07:57 PM.
)
Tutorial
Usando Loops (Avanзado)
Usando Loops (Avanзado)
Нndice
- Oque й 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.
O que й um Loop?
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.
Porque usar um Loop?
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.
Formas de usar um Loop.
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:
pawn Code:for(new Lp; Lp < 10; Lp++)
{
printf("%i", Lp);
}
Desta forma, o Loop vai nos 'printar' em nosso console:
Code:0 1 2 3 4 5 6 7 8 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
pawn Code:new i;
while(i < 10)
{
printf("%i", i);
i++;
}
Desta forma, o Loop vai nos 'printar' em nosso console:
Code:0 1 2 3 4 5 6 7 8 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:
pawn Code:new a;
do
{
printf("%i", a);
a++;
}
while(a < 10);
Desta forma, o Loop vai nos 'printar' em nosso console:
Code:0 1 2 3 4 5 6 7 8 9
Funзхes para usar em Loops.
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
pawn Code:for(new i; i < 10; i++)
{
if(i == 5) break;
printf("%i", i);
}
Desta forma, o Loop vai nos 'printar' em nosso console:
Code:0 1 2 3 4
- Como usar o continue
pawn Code:for(new i; i < 10; i++)
{
if(i == 5) continue;
printf("%i", i);
}
Desta forma, o Loop vai nos 'printar' em nosso console:
Code:0 1 2 3 4 6 7 8 9
- Como usar o goto
pawn Code: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.
Desta forma, o Loop vai nos 'printar' em nosso console, algo como isso(depende da sorte do random):
Code: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
- Como usar o sleep
pawn Code:for(new i; i < 10; i++)
{
if(i == 5) sleep(1000);
printf("%i", i);
}
Desta forma, o Loop vai nos 'printar' em nosso console:
Code:0 1 2 3 4
FAQ.
Pergunta: Eu jб sabia disso tudo
Resposta: Entгo, ignore tudo, nгo preciso saber disso.
Pergunta: Como criar um Loop infinito?
Resposta: Simples:
pawn Code:
for(;;) print("Loop Infinito");
pawn Code:
while(true) print("Loop Infinito");
pawn Code:
do
{
print("Loop Infinito");
}
while(true);
Crйditos.
- DreeH - Criaзгo total do tutorial.
- Wiki SA:MP - A maioria do tutorial foi tirado de lб.
- SA:MP Team.
Se ficou mais alguma dъvida, poste abaixo, que tentarei resolver.