Pregunta sobre el switch -
Su37Erich - 15.12.2014
Hola a todos
Estoy realizando un sistema de trabajos, pero me ha surgido una duda al usar switch, un ejemplo serнa hacer esto:
pawn Код:
main()
{
new variable = 5;
switch(variable)
{
case 5:
{
printf("Hey");
variable = 6;
}
case 6:
{
printf("Si aparece esto ... F.O.");
}
}
}
їMe imprimirнa 2 mensajes en la consola?
Es que aun tengo dudas como funciona switch, una vez me paso que puse algo asн:
case 0..50000 y el compilador se tardу una eternidad, lo que parece que estaba haciendo era traducir el cуdigo ese a case 0, 1, 2, 3, 4 ... 50000 y lo tuve que pasar a if(var > 0 && var <=50000)
Gracias si alguien me pueda aclarar mi duda
Re: Pregunta sobre el switch -
CaveDweller - 15.12.2014
Sн, tu ejemplo te imprimirнa 2 mensajes porque cuando el sistema alcanza "case 6", el variable estarб 6.
Se puede utilizar un variable temporal (como en el siguiente ejemplo).
pawn Код:
new variable = 5;
new temp = -1;
switch(variable)
{
case 5:
{
printf("Hey");
temp = 6;
}
case 6:
{
printf("Si aparece esto ... F.O.");
}
}
if (temp != -1)
variable = temp;
Re: Pregunta sobre el switch -
JuanStone - 15.12.2014
"Switch" solo harб una vez lo quй coloques. ejemplo:
pawn Код:
new variable = 50:
switch(variable)
{
case 0: // si tu variable estб en 0 harб lo quй coloquйs dentro del case 0(solo lo hace una vez).
{
SendClientMessage(playerid, -1, "Tu variable estб en: 0");
}
case 1..50: // si tu varuable esta en 1-50 harб lo quй coloquйs entre este rango(solo una vez).
{
forma(string, sizeof(string), "Tu variable estб en: %d", variable);
SendClientMessage(playerid, -1, string);
}
}
Pero tъ ahн le diste un valor a tu variable al llegar al 'case 5' y entonces el switch irб a ese valor la siguiente vez, algo asн:
pawn Код:
new variable = 3;
switch(variable) // al valor de la variable
{
case 0: // solo hace una vez las funciones por case.
{
SendClientMessage(playerid, -1, "variable llego a 0 y ahora su valor es '5'/case 5 la prox.");
variable = 3; // esto da un valor especifico a tu variable, la siguiente vez ira al case 3 porque es el valor de la variable
}
case 1:
{
SendClientMessage(playerid, -1, "variable llego a 1 y se restara uno y su valor ahora es 0.");
variable--; // esto resta a 1 de valor a tu variable.
}
case 2:
{
SendClientMessage(playerid, -1, "variable llego a 2 y se restara uno y su valor ahora es 1.");
variable--; // esto resta a 1 de valor a tu variable.
}
case 3:
{
SendClientMessage(playerid, -1, "el valor actual de tu variable es 3 y restara uno, ahora su valor es 2.");
variable--; // esto resta a 1 de valor a tu variable.
}
}