Rodney Francalim
Tutoriais
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 ) seguido da variбvel que vocк queira trabalhar entre parкnteses.
- Mas vamos comeзar exemplificando, caso usбssemos if e else if:
pawn Код: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 ) seguido da variбvel que vocк queira trabalhar entre parкnteses.
- Mas vamos comeзar exemplificando, caso usбssemos if e else if:
- 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 Код:- Nessa seзгo eu vou apenas citar exemplos em if e else if e como ficaria em switch.
- 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 Код:- Como vocк deve ter visto, o caso pode mudar. Й tanto para:
- 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.
- 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.
- E tambйm ao Don_Speed por ter me corrigido.
••••••••••••••••••••••••••••••••••••••••••••••••••
- Meu segundo tutorial, eu sу encontrei 1 tutorial sobre switch entгo resolvi fazer mais 1, sу pra enriquecer mais o fуrum.
- 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.
- E tambйm ao Don_Speed por ter me corrigido.
••••••••••••••••••••••••••••••••••••••••••••••••••