Pawno-Script

Todos Nos Ayudamos

Conectarse

Recuperar mi contraseña

Últimos temas

» [GM] Stunts Universe 100% Español (Stunts/Races/Drift)
Vie Ene 31, 2014 5:43 pm por Hunter_white

» [FS] Animaciones
Miér Dic 18, 2013 7:06 pm por Raby

» Policias vs Terroristas
Jue Ago 01, 2013 1:46 am por Dani Duende

» [FS] Sistema de reportes por dialog
Vie Mayo 24, 2013 5:29 pm por Eric_espinosa

» Abrir portones con las teclas
Vie Mayo 24, 2013 4:48 pm por Eric_espinosa

» [FilterScript] Armas en la espalda o cinturon.
Dom Nov 11, 2012 10:44 am por Axel_x360

» [Servdor] "Los Simuladores RP", gran apertura!! V1.2
Miér Oct 24, 2012 6:09 pm por Shampier17

» [FS] Sistema Neon (0.3c)
Dom Oct 07, 2012 8:01 pm por felipepalacios

» [Tutorial] Cargar Objetos
Vie Oct 05, 2012 4:28 pm por Venedetto

Diciembre 2016

LunMarMiérJueVieSábDom
   1234
567891011
12131415161718
19202122232425
262728293031 

Calendario Calendario

Navegación

Estadísticas

Nuestros miembros han publicado un total de 91 mensajes en 79 argumentos.

Tenemos 128 miembros registrados.

El último usuario registrado es migueleex.

¿Quién está en línea?

En total hay 1 usuario en línea: 0 Registrados, 0 Ocultos y 1 Invitado

Ninguno


La mayor cantidad de usuarios en línea fue 43 el Lun Abr 11, 2016 1:48 am.


    [Tutorial basico] Uso de loops o bucles

    Comparte

    Reex
    Administrador
    Administrador

    Mensajes : 64
    Fecha de inscripción : 21/01/2011
    Localización : Argentina

    [Tutorial basico] Uso de loops o bucles

    Mensaje  Reex el Miér Ene 26, 2011 7:24 pm

    Bucle (loop)

    Un bucle (loop en ingles) es una sentencia que hace que se repita una parte de codigo una determinada cantidad de veces.
    Un ejemplo simple:
    Código:

    new variable; // se crea la variable y su valor inicial es 0
    variable=variable+2; //la variable es 2
    variable=variable+2;//la variable es 4
    variable=variable+2;//la variable es 6
    variable=variable+2;//la variable es 8
    variable=variable+2;//la variable es 10
    variable=variable+2;//la variable es 12

    printf("variable es igual a %d", variable);
    Con un bucle seria de la siguiente forma:
    Código:

    new variable;
    for(variable=0;variable<12;variable+=2){
    }
    printf("variable es igual a %d", variable);

    En ambos el resultado seria 12, aunque la forma mas simple, organizada y rapida es la del bucle.

    Tipos de Bucles

    En el lenguaje PAWN hay 3 tipos de bucles diferentes:

    -for
    -while
    -do... while


    Bucle While

    Empiezo con este por ser el mas facil, es similar a la sentencia if pero este se repite infinitamente mientras la condicion del while se cumpla.

    Código:

    while(condicion){
      //codigo
    }

    La sintaxis de este bucle es sencilla, consta de la palabra while, entre los parentesis la condicion para que el bucle continue, y el codigo que ejecuta el loop.

    Ejemplo:
    Código:

    new i; // creamos la variable i, su valor por defecto es 0
    while(i<20){ // mientras(while en ingles) i sea menor a 20
      i++; // i va aumentar en una unidad
      printf("i es igual a %d", i); // enviamos el resultado a la consola
    } // cerramos el loop

    Este bucle va a enviar 20 veces el resultado de i.

    Bucle For

    Este es el bucle mas complicado y consta de tres partes:inicio, condicion, incremento. Es muy parecido al while, pero su sintaxis es diferente.

    Código:

    for(inicio;condicion;incremento){
      //codigo
    }
    El ejemplo mas comun y utilizado de este bucle en SA-MP:

    Código:

    for(new i;i<MAX_PLAYERS;i++){//creamos en el bucle con la variable i(por defecto su valor es 0); si i es menor a MAX_PLAYERS(500 slots), i va a aumentar
      if(IsPlayerConnected(i)){ // si i esta conectado
          printf("%d esta conectado", i); // notificamos en la consola de que i esta conectado
      } // cerramos el if
    }//cerramos el loop

    Este es el mas usado como lo dije antes, y sirve para hacer una determinada funcion hacia a todos los jugadores conectados y la variable i cumple la funcion de todas las id de los jugadores.
    Un ejemplo para kickear a todos los player conectados:
    Código:

    for(new i;i<MAX_PLAYERS;i++){//creamos en el bucle con la variable i(por defecto su valor es 0); si i es menor a MAX_PLAYERS(500 slots), i va a aumentar
      if(IsPlayerConnected(i)){ // si i esta conectado
          Kick(i); // Kickeamos a i
      } // cerramos el if
    }//cerramos el loop


    Bucle Do... While
    El bucle Do... While es basicamente un while, la diferencia esta planteada en el orden y el uso de este bucle.
    Código:

    do {
      //codigo
    }
    while(condicion) {
      //codigo
    }

    No creo que necesite ejemplo porque el de while ya fue explicado y es el menos usado. Si lo necesitan diganlo.


    Operadores de los bucles

    "Break"

    Este operador sirve basicamente, para terminar o cortar un bucle.
    Ejemplo:
    Código:

    for(new i;i<30;i++){//creamos un bucle for, con la variable i. Si la variable i es menor a 30 i va a ir aumentando es una unidad.
      if(i == 12){ // si i es igual a 12
          break; // se termina el loop o se quiebra (break en ingles)
      }//cerramos if
    }//cerramos bucle
    Este bucle se ejecutara si la variable i es menor a 12
    Si la variable es 12 se termina o quiebra el bucle.

    "Continue"

    Este operador sirve para saltearse una parte del codigo y que vuelva directamente a la condicion del bucle.

    Código:

    for(new i;i<30;i++){ // creamos el mismo loop de antes
      if(i == 22){ // si i es igual a 22
          continue; // el codigo de abajo es salteado, y se va directamente a la condicion
      } //se cierra el if
      printf("i es igual a %d", i);//mostramos el valor de i, excepto cuando i es igual a 22
    }//cerramos el bucle

    Cualquier error me avisan y lo corrijo.
    Por cierto, esto lo hice yo -.- para que no digan que copie y pegue.

    Creditos: Sharingan

      Fecha y hora actual: Jue Dic 08, 2016 7:03 pm