SSGamers - 12 Anos online por você.

#SSGamers - A Comunidade que mais crescer no brasil!

Participe do fórum, é rápido e fácil

SSGamers - 12 Anos online por você.

#SSGamers - A Comunidade que mais crescer no brasil!

SSGamers - 12 Anos online por você.

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Chegou o novo tema 6.5.5 - SSGamers - Servidores online de qualidade - Aproveite e entre para nossa comunidade, inscreva-se já! - Ouça nossa web radio - Veja nossas novidades - Participe dos nossos setores de jogos online - Parcerias aberta fale já com um administrador.

    [Tutorial] Usando switch

    Weslley_Script
    Weslley_Script
    SS - Fundador
    SS - Fundador


    Steam Steam : WeslleySSGames
    Zello : WeslleySSGames
    Mensagens : 11378
    Moedas : 1031978
    Data de inscrição : 06/10/2011
    Idade : 28
    Localização : Brasil

    [Tutorial] Usando switch Empty [Tutorial] Usando switch

    Mensagem por Weslley_Script Dom 8 Out 2023 - 17:25

    Rodney Francalim

    Tutoriais
    ••••••••••••••••••••••••••••••••••••••••••••••••••

    1: Sobre o 'switch'?
    Switch й um substituto do if e else if, mas trabalha de uma maneira mais simples e ordenada e com vбrias possibilidades. Todavia, ele nгo й melhor do que o if e else if (depende do seu ponto de vista e com o que e como quer trabalhar seu cуdigo), atй porque com o switch nгo й possнvel fazer uma comparaзгo, ou seja, nгo й aceito operadores lуgicos, jб que vamos trabalhar, tambйm, com os cases e isso restringe um pouco o uso do switch.

    2: Criando seu prуprio switch
    - Primeiro deve-se comeзar com o prуprio switch (уbvio [Tutorial] Usando switch Razz) seguido da variбvel que vocк queira trabalhar entre parкnteses.

    - Mas vamos comeзar exemplificando, caso usбssemos if e else if:
    pawn Код:

    Código:
    new var = random(6);
    if(var == 0) printf("O valor da variбvel й %d", var);
    else if(var == 1) printf("O valor da variбvel й %d", var);
    else if(var == 2) printf("O valor da variбvel й %d", var);
    else if(var == 3) printf("O valor da variбvel й %d", var);
    else print("O valor da variбvel й desconhecido");


    - Agora vejamos como ficarб usando switch:
    pawn Код:

    Código:
    new var = random(6);
    switch(var)
    {
        case 0: printf("O valor da variбvel й %d", var); // Caso o valor da variбvel seja 0, enviarб essa mensagem com o valor da variбvel no console.
        case 1: printf("O valor da variбvel й %d", var); // Caso o valor da variбvel seja 1, enviarб essa mensagem com o valor da variбvel no console.
        case 2: printf("O valor da variбvel й %d", var); // Caso o valor da variбvel seja 2, enviarб essa mensagem com o valor da variбvel no console.
        case 3: printf("O valor da variбvel й %d", var); // Caso o valor da variбvel seja 3, enviarб essa mensagem com o valor da variбvel no console.
        default: print("O valor da variбvel й desconhecido"); // Caso o valor da variбvel seja diferente das que estгo logo acima, enviarб essa mensagem informando que o valor й desconhecido
    }


    - E dб pra deixar mais simples do que isso:
    pawn Код:

    Código:
    new var = random(6);
    switch(var)
    {
        case 0 .. 3: printf("O valor da variбvel й %d", var); // Caso o valor da variбvel esteja de 0 а 3, enviarб essa mensagem com o valor da variбvel no console.
        default: print("O valor da variбvel й desconhecido"); // Caso o valor da variбvel seja diferente das que estгo logo acima, enviarб essa mensagem informando que o valor й desconhecido
    }


    - Agora vou colocar um exemplo para informar se o nъmero escolhido serб нmpar ou par:
    pawn Код:

    Código:
    new var = random(6);
    switch(var)
    {
        case 0, 2, 4, 6: printf("O valor da variбvel й par (%d)", var); // Caso o valor da variбvel seja 0, 2, 4 ou 6, enviarб essa mensagem informando que й um nъmero par, seguido do prуprio valor da variбvel no console.
        case 1, 3, 5:    printf("O valor da variбvel й нmpar (%d)", var); // Caso o valor da variбvel seja 1, 3 ou 5, enviarб essa mensagem informando que й um nъmero нmpar, seguido do prуprio valor da variбvel no console.
    }


    3: Exemplos
    - Nessa seзгo eu vou apenas citar exemplos em if e else if e como ficaria em switch.
    pawn Код:

    Código:
    if(!strcmp(cmdtext, "/admins", true))
    {
        SendClientMessage(playerid, -1, "Admins Online:");
        for(new i = 0; i < MAX_PLAYERS; i++)
        {
            if(PlayerInfo[i][pAdmin] == 1)
            {
                GetPlayerName(i, sendername, sizeof(sendername));
                format(string, 128, "Admin: %s [Admin level 1]", sendername);
                SendClientMessage(playerid, COLOR_GRAD2, string);
            }
            else if(PlayerInfo[i][pAdmin] == 2)
            {
                GetPlayerName(i, sendername, sizeof(sendername));
                format(string, 128, "Admin: %s [Admin level 2]", sendername);
                SendClientMessage(playerid, COLOR_GRAD2, string);
            }
            else if(PlayerInfo[i][pAdmin] == 3)
            {
                GetPlayerName(i, sendername, sizeof(sendername));
                format(string, 128, "Admin: %s [Admin level 3]", sendername);
                SendClientMessage(playerid, COLOR_GRAD2, string);
            }
            else if(PlayerInfo[i][pAdmin] == 4)
            {
                GetPlayerName(i, sendername, sizeof(sendername));
                format(string, 128, "Admin: %s [Admin level 4]", sendername);
                SendClientMessage(playerid, COLOR_GRAD2, string);
            }
            else if(PlayerInfo[i][pAdmin] == 5)
            {
                GetPlayerName(i, sendername, sizeof(sendername));
                format(string, 128, "Admin: %s [Admin level 5]", sendername);
                SendClientMessage(playerid, COLOR_GRAD2, string);
            }
        }
        return 1;
    }


    Switch...
    pawn Код:

    Código:
    if(!strcmp(cmdtext, "/admins", true))
    {
        SendClientMessage(playerid, 0xFFFFFFAA, "Admins Online:");
        for(new i = 0; i < MAX_PLAYERS; i++)
        {
            switch(PlayerInfo[i][pAdmin])
            {
                case 1 .. 5:
                {
                    GetPlayerName(i, sendername, sizeof(sendername));
                    format(string, 128, "Admin: %s [Admin level %d]", sendername, PlayerInfo[i][pAdmin]);
                    SendClientMessage(playerid, 0xFFFF00AA, string);
                }
            }
        }
        return 1;
    }


    - Outro exemplo tambйm й com o uso do dialogid e listitem.
    pawn Код:

    Código:
    if(dialogid == 0)
    {
        if(response)
        {
            if(listitem == 0)
            {
                // ...
            }
            if(listitem == 1)
            {
                // ...
            }
        }
    }

    if(dialogid == 1)
    {
        if(response)
        {
            if(listitem == 0)
            {
                // ...
            }
            if(listitem == 1)
            {
                // ...
            }
        }
    }


    - Mais uma vez com switch:
    pawn Код:

    Código:
    switch(dialogid)
    {
        case 0:
        {
            if(response)
            {
                switch(listitem)
                {
                    case 0: // ...
                    case 1: // ...
                }
            }
        }
        case 1:
        {
            if(response)
            {
                switch(listitem)
                {
                    case 0: // ...
                    case 1: // ...
                }
            }
        }
    }


    4: Explicaзхes
    - Como vocк deve ter visto, o caso pode mudar. Й tanto para:
    pawn Код:

    Código:
    case 1: // var = 1
    case 2: // var = 2
    case 3: // var = 3


    quanto para:
    pawn Код:

    Código:
    case 1, 2, 3: // var = %d


    e:
    pawn Код:

    Código:
    case 1 .. 3: // var = %d


    - E tambйm temos o default, por exemplo:
    pawn Код:

    Código:
    case 1: // executa o cуdigo caso o valor seja 1
    case 2: // executa o cуdigo caso o valor seja 2
    case 3: // executa o cуdigo caso o valor seja 3
    case 4: // executa o cуdigo caso o valor seja 4
    default: // executa o cуdigo caso o valor nгo esteja anexado em nenhum dos casos (OPCIONAL)


    5: Consideraзхes finais
    - Meu segundo tutorial, eu sу encontrei 1 tutorial sobre switch entгo resolvi fazer mais 1, sу pra enriquecer mais o fуrum. [Tutorial] Usando switch Mrgreen
    - Caso vocк queira mais alguma informaзгo sobre a diferenзa entre switch e if e else if, clique aqui.

    6: Agradecimentos e crйditos
    - Agradecer ao Josma_cmd pelo tutorial dele, me ajudou bastante.
    - E ao wiki.sa-mp.com. [Tutorial] Usando switch Razz
    - E tambйm ao Don_Speed por ter me corrigido. [Tutorial] Usando switch Mrgreen

    ••••••••••••••••••••••••••••••••••••••••••••••••••



    [Tutorial] Usando switch D07Xwqb
    [Tutorial] Usando switch Yjab9HN

      Data/hora atual: Qui 9 maio 2024 - 13:29