Alguien que me explique esto ... ? -
Guss - 25.03.2015
Hola, se un poco de pawn pero a veces me complico yo mismo... hace unos dнas hice un post pidiendo ayuda con un cуdigo, y la respuesta nunca me la hubiese imaginado... y es que no se usar el ciclo
for. Entonces me puse a buscar en internet, pero no me queda claro, sin embargo encontrй este cуdigo:
PHP код:
main()
{
new c = 0;
for(new i = 0; i != 100; i++)
{
printf("%i", ++c);
if(c == 10) return;
}
}
Si alguien me explica estarнa muy agradecido.
Re: Alguien que me explique esto ... ? -
admantis - 25.03.2015
for() es bбsicamente una repeticiуn bajo ciertas condiciones. Todas y cada unas de los bucles for() tienen 3 partes: la definiciуn de una variable, la condiciуn, y la acciуn.
PHP код:
for(new i = 0; i != 100; i++)
^ ^ ^
Definiciуn Condiciуn Acciуn
Si la condiciуn se cumple, entonces se ejecuta la acciуn, y todo el bloque de cуdigo consiguiente tambiйn. En otras palabras, un bucle for es una declaraciуn de un lenguaje de programaciуn que permite que el cуdigo se ejecuta repetidamente. Un bucle for es una especie de control para especificar una iteraciуn.
El ejemplo que has colocado se puede resumir de la siguiente forma:
PHP код:
main()
{
new c = 0; // se crea variable "c"
for(new i = 0; i != 100; i++) // se declara un bucle for, definiendose "i = 0" dentro del bucle, y si "i" no es 100, subir "i" por uno (i++)
{
printf("%i", ++c); // aqui, se imprime el valor de c incrementado, pues es incrementado aquн mismo, al mismo tiempo que "i" por lo que "c = i"
if(c == 10) return; // si c llega a 10, retornar, es decir, que las 90 iteraciones restantes jamбs se ejecutarбn.
}
}
Ademбs, existen dos funciones especiales que pueden ser utilizadas dentro de for() (o
while()), que son "continue" y "break". "continue" salta a la siguiente iteraciуn, y "break" rompe, como su nombre lo dice, el bucle.
Un ejemplo:
PHP код:
for(new i = 0; i != 10; i++)
{
if(i == 5) continue;
if(i == 8) break;
printf("Nъmero: %d", i);
}
/* Esto imprime
Nъmero: 0
Nъmero: 1
Nъmero: 2
Nъmero: 3
Nъmero: 4
Nъmero: 6 (Conste el salto de 4 a 6!)
Nъmero: 7
En 8 se rompe, no llega hasta el 9 (0..9)
*/
Respuesta: Re: Alguien que me explique esto ... ? -
Guss - 25.03.2015
Quote:
Originally Posted by admantis
for() es bбsicamente una repeticiуn bajo ciertas condiciones. Todas y cada unas de los bucles for() tienen 3 partes: la definiciуn de una variable, la condiciуn, y la acciуn.
PHP код:
for(new i = 0; i != 100; i++)
^ ^ ^
Definiciуn Condiciуn Acciуn
Si la condiciуn se cumple, entonces se ejecuta la acciуn, y todo el bloque de cуdigo consiguiente tambiйn. En otras palabras, un bucle for es una declaraciуn de un lenguaje de programaciуn que permite que el cуdigo se ejecuta repetidamente. Un bucle for es una especie de control para especificar una iteraciуn.
El ejemplo que has colocado se puede resumir de la siguiente forma:
PHP код:
main()
{
new c = 0; // se crea variable "c"
for(new i = 0; i != 100; i++) // se declara un bucle for, definiendose "i = 0" dentro del bucle, y si "i" no es 100, subir "i" por uno (i++)
{
printf("%i", ++c); // aqui, se imprime el valor de c incrementado, pues es incrementado aquн mismo, al mismo tiempo que "i" por lo que "c = i"
if(c == 10) return; // si c llega a 10, retornar, es decir, que las 90 iteraciones restantes jamбs se ejecutarбn.
}
}
|
Muchas gracias admantis, al fin lo tengo claro.
Edito
Hay algo que todavнa no entiendo... en mi tema anterior el cуdigo al que me referнa era este:
PHP код:
for(new i = 0; i < MAX_PLAYERS; i ++)
{
if(IsPlayerConnected(i) && IsPlayerAdmin(i))
{
SendClientMessage(i, -1, duda);
GameTextForPlayer(i, "New Question", 5000, 6);
}
}
їPor que usar un ciclo en ese caso? si sуlo se va a enviar un GameTextForPlayer
Disculpen pero no querнa quedarme con la duda
Respuesta: Re: Alguien que me explique esto ... ? -
OTACON - 25.03.2015
Quote:
Originally Posted by Guss
Muchas gracias admantis, al fin lo tengo claro.
Edito
Hay algo que todavнa no entiendo... en mi tema anterior el cуdigo al que me referнa era este:
PHP код:
for(new i = 0; i < MAX_PLAYERS; i ++)
{
if(IsPlayerConnected(i) && IsPlayerAdmin(i))
{
SendClientMessage(i, -1, duda);
GameTextForPlayer(i, "New Question", 5000, 6);
}
}
їPor que usar un ciclo en ese caso? si sуlo se va a enviar un GameTextForPlayer
Disculpen pero no querнa quedarme con la duda
|
por que se esta enviando a todos los jugadores conectados y que sean administradores rcon.
saludos.
Re: Respuesta: Re: Alguien que me explique esto ... ? -
SickAttack - 25.03.2015
Quote:
Originally Posted by Guss
Muchas gracias admantis, al fin lo tengo claro.
Edito
Hay algo que todavнa no entiendo... en mi tema anterior el cуdigo al que me referнa era este:
PHP код:
for(new i = 0; i < MAX_PLAYERS; i ++)
{
if(IsPlayerConnected(i) && IsPlayerAdmin(i))
{
SendClientMessage(i, -1, duda);
GameTextForPlayer(i, "New Question", 5000, 6);
}
}
їPor que usar un ciclo en ese caso? si sуlo se va a enviar un GameTextForPlayer
Disculpen pero no querнa quedarme con la duda
|
Sino se ejecutara el ciclo, entonces solamente un jugador recibira el gametext y mensaje. El ciclo es necesario para mandarlo a un grugo de miembros; el cual es rcon administradores.
Respuesta: Alguien que me explique esto ... ? -
Guss - 25.03.2015
Gracias!
Respuesta: Alguien que me explique esto ... ? -
aoEXE - 26.03.2015
ej.
Код:
el bucle empieza en 0: chequea que el id 0 estй conectado (IsPlayerConnected) y que sea admin rcon (IsPlayerAdmin), si es asн, se envнa el mensaje al jugador que le corresponda ese ID (i).
el bucle avanza a 1: chequea que el id 1 estй conectado (IsPlayerConnected) y que sea admin rcon (IsPlayerAdmin), si es asн, se envнa el mensaje al jugador que le corresponda ese ID (i)
el bucle avanza a 2: chequea que el id 2 estй conectado (IsPlayerConnected) y que sea admin rcon (IsPlayerAdmin), si es asн, se envнa el mensaje al jugador que le corresponda ese ID (i).
Y asн sucesivamente seguirб activo el bucle si la condiciуn de йste sigue siendo true. (i < MAX_PLAYERS) i es menor a MAX_PLAYERS...
Respuesta: Alguien que me explique esto ... ? -
Guss - 26.03.2015
Quote:
Originally Posted by aoEXE
ej.
Код:
el bucle empieza en 0: chequea que el id 0 estй conectado (IsPlayerConnected) y que sea admin rcon (IsPlayerAdmin), si es asн, se envнa el mensaje al jugador que le corresponda ese ID (i).
el bucle avanza a 1: chequea que el id 1 estй conectado (IsPlayerConnected) y que sea admin rcon (IsPlayerAdmin), si es asн, se envнa el mensaje al jugador que le corresponda ese ID (i)
el bucle avanza a 2: chequea que el id 2 estй conectado (IsPlayerConnected) y que sea admin rcon (IsPlayerAdmin), si es asн, se envнa el mensaje al jugador que le corresponda ese ID (i).
Y asн sucesivamente seguirб activo el bucle si la condiciуn de йste sigue siendo true. (i < MAX_PLAYERS) i es menor a MAX_PLAYERS...
|
Muchнsimo mejor, gracias!