[GU?A] Usos de switch. - Printable Version + open.mp forum (https://forum.open.mp) -- Forum: Other languages (https://forum.open.mp/forumdisplay.php?fid=23) --- Forum: Spanish/Espa?ol (https://forum.open.mp/forumdisplay.php?fid=24) ---- Forum: Programaci?n (https://forum.open.mp/forumdisplay.php?fid=51) ---- Thread: [GU?A] Usos de switch. (/showthread.php?tid=114) |
[GU?A] Usos de switch. - klays - 2019-04-14 switch, usos.
Para Variables globales. Primero hay que tener una variable creada, para testear puedes probar con esto: PHP Code: new randomnumber = random(4); Luego de eso creamos el switch, puede ser llamado cuando se ejecute un comando, por ejemplo. PHP Code: switch(randomnumber) Esto significar?, si la variable (randomnumber) es igual a x (el n?mero aleatorio de 0 a 3) imprimir? cierto valor (print). Para variables del jugador. Primero hay que crear la variable: PHP Code: new variable[MAX_PLAYERS]; Luego de eso, el switch, puede ser llamado desde un comando, por ejemplo: PHP Code: switch(variable[playerid]) En resumen, si la variable?(variable) del jugador?es igual a x (numero asignado) mendar? cierto mensaje y ejecutar? cierta funci?n seg?n el case. default: es llamado cuando ning?n case (tras comprobarlos) es igual a la variable, ejemplo: PHP Code: new dos = 2; En el ejemplo anterior la variable es igual a 2, por lo tanto ejecutar? el case 2, en resumen imprimir? numero 2 en la consola, pero en el siguiente ejemplo: PHP Code: new dos = 2; la variable es igual a dos, dentro del switch no hay ning?n case con valor 2 por lo tanto se ejecutar? el default. Por lo tanto imprimir?: numero x en la consola. Para resumir default es invocado cuando ning?n case cumple con la variable. __ Rangos de comprobaciones. Para n?meros consecutivos: puedes comprobar m?s de un (1) solo n?mero en el case (definimos case como: case: 1, etc?tera) con: PHP Code: case 1 .. 4: // resto del c?digo. Un ejemplo para esto es lo siguiente: PHP Code: new variable = random(51); (cr?ditos/idea: autorojo) | En resumen, si la variable se establece en un n?mero entre 1 y 10 imprimir?: el n?mero est? entre el 1 al 10 y as? consecutivamente dependiendo del case. En caso de que ninguno est? en lo correcto se ejecutar? default. Para n?meros distintos: puedes comprobar distintos n?meros que no est?n de forma consecutiva de la siguiente forma: PHP Code: case 1, 3,?7: // resto del c?digo. Para explicar, si la variable es igual a 1, 3 ? 7 ser? ejectuada la funci?n que esta contenga, ejemplo: PHP Code: new variable = random(10); Para resumir, el case 1, 3, 7 se ejecutar?n si el n?mero aleatorio es igual a cualquiera de esos 3 y as? con los dem?s, caso contrario se ejecutar? el default (n?mero 0 y 5, los restantes). __ post en edici?n. RE: [GU?A] Usos de switch. - Mugsy - 2019-04-14 mola, pero creo q esta en la secci?n equivocada RE: [GU?A] Usos de switch. - G0NZ4L0 - 2019-04-14 Pues es la ?nica secci?n espa?ola del foro as? que toca publicar por ac?, est? buena la guia, respect (sonido de misi?n superada del San Andreas) RE: [GU?A] Usos de switch. - Erziok - 2019-04-14 Buena gu?a, muy ?til la informaci?n. RE: [GU?A] Usos de switch. - Keizer - 2019-04-15 Buena guia pero deberian hacer Secciones xD RE: [GU?A] Usos de switch. - #Fede - 2019-04-15 Esta bien, pero en la parte del switch podrias explicar el uso de default y por cierto, el random(3) nunca llegara a 3, simplemente va del 0 al 2. RE: [GU?A] Usos de switch. - Graber - 2019-04-15 Los ejemplos est?n algo bien, pero todo eso se podr?a resumir con format sin tener que usar switch, si se trata de simples mensajes: PHP Code: new randomnumber = random(3); RE: [GU?A] Usos de switch. - Autorojo - 2019-04-15 Est? bien, es una gu?a b?sica, pero creo que falla en varios aspectos. (2019-04-14, 03:19 AM)klays Wrote: Primero hay que tener una variable creada, para testear puedes probar con esto: En caso de hacer un random(3), los resultados ir?n del 0 al 2 (inclusive), es decir: 0, 1 ? 2. Por lo tanto el "case 3" nunca ser? ejecutado. No hac?s menci?n al caso "default" ni ense??s la posibilidad de incluir m?s de un valor en un solo caso: Code: new rand = random(20); Es posible expresarlo de otro modo obteniendo el mismo resultado: Code: new rand = random(20); Pru?bese: https://fiddle.sa-mp.dev/GastronomicalUnchangedIbisbill Es v?lido expresarlo de ambas formas aunque, evidendentemente, utilizar un switch donde corresponde siempre es m?s ordenado que utilizar un if. Otra cosa: divid?s variables "globales" y variables "del jugador". Hasta donde yo s?, las variables se pueden dividir en globales (que est?n fuera de una funci?n) y locales (que est?n dentro de una funci?n). No existen las variables del jugador. Una variable expresada como "gPlayerInfo[MAX_PLAYERS]" es un array con un espacio equivalente al m?ximo de jugadores (MAX_PLAYERS). Naturalmente, se utilizar?a para guardar informaci?n relacionada a determinado jugador, pero eso no hace que deje de ser una variable global. A menos, claro, que est? declarada dentro de una funci?n. RE: [GU?A] Usos de switch. - klays - 2019-04-15 (2019-04-15, 04:48 AM)#Fede Wrote: Esta bien, pero en la parte del switch podrias explicar el uso de default y por cierto, el random(3) nunca llegara a 3, simplemente va del 0 al 2. la estar? editando. Gracias por la correcci?n, error m?o. __ @Graber, lo s?, eran ejemplos en el primer caso. __ @autorojo: gracias por las correcciones, la estar? editando. gu?a actualizada ^^ RE: [GU?A] Usos de switch. - MaikPlay_YT - 2019-04-15 Linda para los programadores aprendices, buen trabajo. RE: [GU?A] Usos de switch. - DarkThinking - 2019-05-30 Util, pero te falta explicar: ->Que los switch solo son num?ricos (integers). ->Que no es necesario usar un random. ejemplo: Code: new i[MAX_PLAYERS]; y que es la forma mas optimizada de hacer todos Code: if(isnull(var)) RE: [GU?A] Usos de switch. - Markski - 2019-05-30 (2019-05-30, 04:55 PM)DarkThinking Wrote: ->Que los switch solo son num?ricos (integers). No necesariamente, un switch puede iterar sobre cualquier elemento byte como lo es un char se puede hacer case 'a': | case 'b': etc |