[Tutorial] Laзo do...while
#1

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
Reply


Messages In This Thread
Laзo do...while - by crush_ - 02.07.2011, 22:25
Re: Laзo do...while - by steki. - 02.07.2011, 22:34
Re: Laзo do...while - by crush_ - 03.07.2011, 01:14
Re: Laзo do...while - by RockFire - 03.07.2011, 01:18
Re: Laзo do...while - by crush_ - 03.07.2011, 01:23
Re: Laзo do...while - by CyNiC - 03.07.2011, 01:28
Re: Laзo do...while - by crush_ - 03.07.2011, 01:31
Re: Laзo do...while - by URSS_Morelli - 03.07.2011, 22:16
Re: Laзo do...while - by Falcon. - 03.07.2011, 22:32
Re: Laзo do...while - by crush_ - 03.07.2011, 23:12

Forum Jump:


Users browsing this thread: 2 Guest(s)