Laзo do...while -
crush_ - 02.07.2011
Olб pessoal, bom, nгo encontrei nenhum tutorial deste tema aqui, entгo lб vai:
Do...While
Do...while й um laзo de repetiзгo como
For e
While, eu ainda nгo vi alguem usa-lo entгo vim aqui mostrar a vocкs como funciona.
Sintaxe:
A sintaxe й bem simples:
pawn Код:
do
{
// Instruзхes
}
while(/* Condiзгo */);
Perceba que o
while( ) termina com
; Nгo se esqueзam!
Exemplo de uso:
Bom, antes de dar um exemplo de uso, vamos deixar algumas coisas bem claras:
Quando vocк usa o
do vocк irб abrir
{ e fechar
}
O que isto quer dizer?
Vocк nгo poderб fazer isto:
pawn Код:
do
{
new i=-1;
i++;
}
while(i<MAX_PLAYERS);
Pois quando vocк fechar as chaves, a variavel
i nгo existirб mais!
Recomendo deixar esse tipo de variavel para repetiзхes como uma variavel global ou que esteja dentro de um corpo do cуdigo. Por exemplo:
pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/servermaxplayers", cmdtext, true, 10) == 0)
{
new i=-1;
do
{
i++;
}
while(i<GetMaxPlayers());
return 1;
}
return 0;
}
Obs: Eu apenas usei o -1, pois o
Do pula o jogador com o ID 0!
Algumas explicaзхes:
Do do inglкs para o portuguкs, significa
Fazer
While do inglкs para o portuguкs, significa
Enquanto
Com essa explicaзгo, vocк vai entender melhor!
Veja:
pawn Код:
Fazer // Do
{
Incrementar variavel i; // i++;
}
Enquanto(Variavel i for < que o nъmero mбximo de jogadores); // While(i<MAX_PLAYERS);
Outro exemplo de uso:
pawn Код:
#include <a_samp>
forward CheckPing();
public OnFilterScriptInit()
{
SetTimer("CheckPing", 1000, true);
return 1;
}
public CheckPing()
{
new i=-1;
do
{
i++;
if(IsPlayerConnected(i) && GetPlayerPing(i) > 200)
{
SendClientMessage(i, 0x000080FF, "Ajuste sua conexгo!");
Kick(i);
}
}
while(i<MAX_PLAYERS);
}
Crйditos:
-
Crush
Re: Laзo do...while -
steki. - 02.07.2011
Maneiro ^^
Eu usei isso pro meu emprego de Lixeiro pra pegar checkpoints random.
pawn Код:
new r;
do
{
r = random(11);
}
while( r == GetPVarInt( playerid, "ProximaLixeiraInfo" ) );
Re: Laзo do...while -
crush_ - 03.07.2011
Quote:
Originally Posted by Luнs Miki
Maneiro ^^
Eu usei isso pro meu emprego de Lixeiro pra pegar checkpoints random.
pawn Код:
new r; do { r = random(11); } while( r == GetPVarInt( playerid, "ProximaLixeiraInfo" ) );
|
Valeu milk
Re: Laзo do...while -
RockFire - 03.07.2011
Milk ? KKKKKKKKKKKKKKKKKKKK
Gostei muito do tutorial
Re: Laзo do...while -
crush_ - 03.07.2011
Quote:
Originally Posted by feliperch
Milk ? KKKKKKKKKKKKKKKKKKKK
Gostei muito do tutorial
|
Valeu ._.
Sim, eu gosto de chamar ele de milk xD
Re: Laзo do...while -
CyNiC - 03.07.2011
Uma coisa importante, o loop estб passando pelo -1, se estiver trabalhando com arrays e fazer um loop tentar acessar a cйlula -1, irб causar problemas em seu servidor, ou atй crasha-lo.
Re: Laзo do...while -
crush_ - 03.07.2011
Quote:
Originally Posted by CyNiC
Uma coisa importante, o loop estб passando pelo -1, se estiver trabalhando com arrays e fazer um loop tentar acessar a cйlula -1, irб causar problemas em seu servidor, ou atй crasha-lo.
|
Sim, o unico motivo que eu usei -1, era pq o Do tava pulando o id 0...
Re: Laзo do...while -
URSS_Morelli - 03.07.2011
Muito bom @crush_ . Isso vai para o Blog que sou postador e irб fazer sucesso!
Re: Laзo do...while -
Falcon. - 03.07.2011
Olб
URSS_Morelli.
Recomendo que leia as
Regras.
** Nгo й permitido fazer propagandas, sejam elas relacionadas a SA-MP ou nгo. Use sua assinatura para anъnciar.
=============================================
Ficou explicativo o tutorial, bom trabalho.
Atenciosamente,
Falcon.
Re: Laзo do...while -
crush_ - 03.07.2011
Quote:
Originally Posted by URSS_Morelli
Muito bom @crush_ . Isso vai para o Blog que sou postador e irб fazer sucesso!
|
Obrigado, tudo bem, pode postar lб... mas nгo esqueзa os credits :P
Obs: Falcon jб disse tudo nй?
Quote:
Originally Posted by Falcon.Sixe
Olб URSS_Morelli.
Recomendo que leia as Regras.
** Nгo й permitido fazer propagandas, sejam elas relacionadas a SA-MP ou nгo. Use sua assinatura para anъnciar.
=============================================
Ficou explicativo o tutorial, bom trabalho.
Atenciosamente,
Falcon.
|
Vlw Falcon.