Portal SAMP
[Pedido] Explicar switch - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Pedido] Explicar switch (/showthread.php?tid=1207)



Explicar switch - MatheuzPatoo - 21/05/2021

Alguem poderia me ensinar como funciona a switch e cases?




RE: Explicar switch - xbruno1000x - 21/05/2021

A grosso modo, o Switch é um recurso parecido com IF & Else. Switch em tradução livre seria algo como gatilho/interruptor, e ele faz exatamente o que o nome diz usando Case(Caso). Caso uma variável seja igual a 1, ativará um gatilho que executará o que está no "Case 1:", caso ela sejja igual a 2 executará o que está no "Case 2:" e por aí vai.

Para saber mais sobre o assunto, pesquise sobre a linguagem C. Provavelmente encontrará materiais com maior complexidade na internet ou até mesmo cursos.

Exemplo retirado de material da PUC-SP:
Código:
int main ()
{
    int num;
    printf ("Digite um numero: ");
    scanf ("%d",&num);
    switch (num)
        {
            case 9:
                    printf ("\n\nO numero e igual a 9.\n");
            break;
            case 10:
                    printf ("\n\nO numero e igual a 10.\n");
            break;
            case 11:
                    printf ("\n\nO numero e igual a 11.\n");
            break;
            default:
                    printf ("\n\nO numero nao e nem 9 nem 10 nem 11.\n");
        }
    return(0);
}



RE: Explicar switch - MatheuzPatoo - 21/05/2021

(21/05/2021 16:34)xbruno1000x Escreveu: A grosso modo, o Switch é um recurso parecido com IF & Else. Switch em tradução livre seria algo como gatilho/interruptor, e ele faz exatamente o que o nome diz usando Case(Caso). Caso uma variável seja igual a 1, ativará um gatilho que executará o que está no "Case 1:", caso ela sejja igual a 2 executará o que está no "Case 2:" e por aí vai.

Para saber mais sobre o assunto, pesquise sobre a linguagem C. Provavelmente encontrará materiais com maior complexidade na internet ou até mesmo cursos.

Exemplo retirado de material da PUC-SP:
Código:
int main ()
{
    int num;
    printf ("Digite um numero: ");
    scanf ("%d",&num);
    switch (num)
        {
            case 9:
                    printf ("\n\nO numero e igual a 9.\n");
            break;
            case 10:
                    printf ("\n\nO numero e igual a 10.\n");
            break;
            case 11:
                    printf ("\n\nO numero e igual a 11.\n");
            break;
            default:
                    printf ("\n\nO numero nao e nem 9 nem 10 nem 11.\n");
        }
    return(0);
}
ent seria tipo um


Código PHP:
if(PlayerInf[playerid][Org] == 0)
{
   
SetPlayerSkin(playeridSkinCivil);
}

[
align=left][php]if(PlayerInf[playerid][Org] == 1)
{
   
SetPlayerSkin(playeridSkinPolicia);




RE: Explicar switch - IlanZ - 21/05/2021

(21/05/2021 16:49)MatheuzPatoo Escreveu:
(21/05/2021 16:34)xbruno1000x Escreveu: A grosso modo, o Switch é um recurso parecido com IF & Else. Switch em tradução livre seria algo como gatilho/interruptor, e ele faz exatamente o que o nome diz usando Case(Caso). Caso uma variável seja igual a 1, ativará um gatilho que executará o que está no "Case 1:", caso ela sejja igual a 2 executará o que está no "Case 2:" e por aí vai.

Para saber mais sobre o assunto, pesquise sobre a linguagem C. Provavelmente encontrará materiais com maior complexidade na internet ou até mesmo cursos.

Exemplo retirado de material da PUC-SP:
Código:
int main ()
{
    int num;
    printf ("Digite um numero: ");
    scanf ("%d",&num);
    switch (num)
        {
            case 9:
                    printf ("\n\nO numero e igual a 9.\n");
            break;
            case 10:
                    printf ("\n\nO numero e igual a 10.\n");
            break;
            case 11:
                    printf ("\n\nO numero e igual a 11.\n");
            break;
            default:
                    printf ("\n\nO numero nao e nem 9 nem 10 nem 11.\n");
        }
    return(0);
}
ent seria tipo um


Código PHP:
if(PlayerInf[playerid][Org] == 0)
{
   SetPlayerSkin(playeridSkinCivil);
}

[
align=left][php]if(PlayerInf[playerid][Org] == 1)
{
   SetPlayerSkin(playeridSkinPolicia);


Tipo isso:
Código PHP:
switch(PlayerInf[playerid][Org]){
    case 
0:{ // caso for civil

    
}

    case 
1:{ // caso for pm

    
}

    ...
etc etc




RE: Explicar switch - Dr Editor - 21/05/2021

Outra boa funcionalidade de verificar via switch é a possibilidade de minimizar (não otimizar) várias linhas de código, como o último exemplo:

Com IF:
Código PHP:
new valorDaVar 5;

if(
valorDaVar >= && valorDaVar <= 5)
{
     // O valor é entre 0 e 5
}
else
{
     // O valor é menor que 0 ou maior que 5


Com SWITCH:

Código PHP:
new valorDaVar 5;

switch(
valorDaVar)
{
     case 0..5:
     {
          // O valor é entre 0 e 5
     }
     default:
     {
          // O valor é menor que 0 ou maior que 5
     }


Outra possibilidade via switch:

Código PHP:
new valorDaVar 5;

switch(
valorDaVar)
{
     case 0..510..2030..4050:
     {
          // O valor é entre 0 e 5, 10 e 20, 30 e 40 e 50
     }
     default:
     {
          // O valor é diferente dos valores acima
     }