[Tutorial] Usando Break & Continue
#1

Necessбrio entender sobre Loop: https://sampforum.blast.hk/showthread.php?tid=195395

Break
Break's sгo usados em Loop's, podendo parar o processo do mesmo.
loop faz uma conta rбpida de um numero a outro, exemplo: de 0 a 500, com o Break vocк poderб parar essa conta em qualquer numero entre 0 e 500...

Exemplo:
pawn Код:
new string[20];
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
        if(i == GetMaxPlayers())
        {
            format(string, sizeof(string), "Slots: {1E90FF}%d", i);
            SendClientMessageToAll(Branco, string);
            break;
        }
    }
Esse Loop vai fazer a conta de 0 a 500(que й o valor mбximo de slots), porem, quando o (i) que й a variбvel criada no loop chegar ao numero mбximo de slots(do servidor) ele irб formatar uma string e mandar uma mensagem para todos com o numero de slots do servidor. Apуs isso, irб parar o loop usando break.

Jб se vocк mudar a ordem do cуdigo, colocando o format e o SendClientMessage fora das chaves do if que compara a variбvel do loop com o numero mбximo de slots, ele terб um resultado diferente.

Exemplo de como ficaria o cуdigo:
pawn Код:
new string[20];
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
        if(i == GetMaxPlayers())
        {
            break;
        }
        format(string, sizeof(string), "Slots: {1E90FF}%d", i);
        SendClientMessageToAll(Branco, string);
    }
No exemplo acima, ele nгo mandaria o resultado obtido e sim todos os resultados durante o progresso da conta, em um servidor de 3 slots por exemplo ele mandaria vбrias mensagems com a seguinte string:

pawn Код:
0
1
2
Essa ordem ainda pode ser alterada, colocando o format e o SendClientMessage acima do if que contem o break, ficando assim:

pawn Код:
new string[20];
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
        format(string, sizeof(string), "Slots: {1E90FF}%d", i);
        SendClientMessageToAll(Branco, string);
        if(i == GetMaxPlayers())
        {
            break;
        }
    }
O resultado nesse caso seria:
pawn Код:
0
1
2
3
4
5
Continue
Da mesma forma que а uma funзгo que pare um loop tambйm а uma que faзa ele continuar, e o nome й bem apropriado. continue. O continue pode ser usado para pular um ou mais numeros no loop, exemplo:

pawn Код:
new string[20];
    for(new i = 0; i < 5; i++)
    {
        if(i == 3)
        {
            continue;
        }
        format(string, sizeof(string), "Slots: {1E90FF}%d", i);
        SendClientMessageToAll(Branco, string);
    }
    return 1;
    }
Neste exemplo, estariamos fazendo a conta com o resultado mбximo de 5(que supostamente seria o numero de slots) entгo, o continue faria o loop pular o numero 3, o resultado seria esse:

pawn Код:
0
1
2
4
Para pular mais de um numero й simples, vocк sу precisa usar operadores ">, &&, <"
pawn Код:
new string[20]
    for(new i = 0; i < 10; i++)
    {
        if(i > 3 && i < 7)
        {
            continue;
        }
        format(string, sizeof(string), "Slots: {1E90FF}%d", i);
        SendClientMessageToAll(Branco, string);
    }
    return 1;
    }
Neste caso, ele pularia apуs o numero 3 e antes do numero 7, tendo o resultado:

pawn Код:
0
1
2
3
7
8
9
Bom, fiz este tutorial bбsico por que ao fazer a lista de tutoriais notei que nгo hб nenhum tutorial sobre o assunto, apesar de ser uma coisa simples, por nгo haver muitos lugares com informaзхes algumas pessoas nгo sabem que utilidade pode ter Break e Continue, entгo ai estб =)
Reply


Messages In This Thread
Usando Break & Continue - by Josma_cmd - 06.05.2011, 02:31
Re: Usando Break & Continue - by JOKERBOY - 06.05.2011, 02:32
Re: Usando Break & Continue - by CyNiC - 06.05.2011, 02:35
Re: Usando Break & Continue - by Chainksain - 06.05.2011, 02:53
Re: Usando Break & Continue - by faeldk - 06.05.2011, 13:56
Re: Usando Break & Continue - by steki. - 06.05.2011, 14:21
Re: Usando Break & Continue - by Chainksain - 06.05.2011, 16:43
Re: Usando Break & Continue - by [S]trong - 06.05.2011, 16:49
Re: Usando Break & Continue - by JonathanFeitosa - 06.05.2011, 19:05
Re: Usando Break & Continue - by The Knight - 06.05.2011, 19:06

Forum Jump:


Users browsing this thread: 2 Guest(s)