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:
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.pawn Code:for(new Lp; Lp < 10; Lp++)
{
printf("%i", Lp);
}
Desta forma, o Loop vai nos 'printar' em nosso console:
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.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
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.pawn Code:new i;
while(i < 10)
{
printf("%i", i);
i++;
}
Desta forma, o Loop vai nos 'printar' em nosso console:
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.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:
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.pawn Code:new a;
do
{
printf("%i", a);
a++;
}
while(a < 10);
Desta forma, o Loop vai nos 'printar' em nosso console:
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.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
Explicaзгo: O Loop vai dar voltas na variбvel i, e se(if) ela for igual a 5, ele vai executar 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:
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.Code:0 1 2 3 4
- Como usar o continue
Explicaзгo: O Loop vai dar voltas na variбvel i, e se(if) ela for igual a 5, ele vai executar 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:
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).Code:0 1 2 3 4 6 7 8 9
- Como usar o goto
Explicaзгo: Estб nos comentбrios acima.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):
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.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
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.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.




