Autor Tema: Ciclo for - etiquetas  (Leído 855 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Conectado ReynalDev

  • Administrator
  • *
  • Topic Author
  • Mensajes: 4846
  • mx
  • Agradecimientos: 1692
  • I took a pill in Ibiza
    • ReynalDev
  • Cronica: : Interlude, C4
  • Revision: 1132, FREE,582
  • S.O: Linux CentOS
  • Serverpack : Frozen,aCis,Lisvus
A Kimeraweb le gusta este post.

Ciclo for - etiquetas
« en: Mayo 16, 2015, 10:38:40 pm »
gracias
Este post tiene 1 agradecimientos
  • Añade a tus favoritos
    Ya que usualmente los veo en los códigos de los forks de L2 y por ahora tengo entendido lo que es el break y continue, sin embargo, al ver un poquito de información de las etiquetas encontré una forma de digamos redireccionar el ciclo a otra línea.

    Ejemplo (alusivo):

    Código: [Seleccionar]
          for ( i=1 ; i<=10 ; i++ )
          {
              System.out.println( "Comenzada la vuelta" );
              System.out.println( i );
                  if (i==8) break salida;
                      System.out.println( "Terminada esta vuelta" );
          }
          System.out.println( "Terminado" );
          salida:
          ...

    Citar
    En este caso, a mitad de la pasada 8 se saltaría hasta la posición que hemos etiquetado como
    "salida" (se define como se ve en el ejemplo, terminada con el símbolo de "dos puntos"), de
    modo que no se escribiría en pantalla el texto "Terminado" (lo hemos "saltado").

    El problema que presento es que al parecer la información que leí no es del todo acertada o cambió de Java 6 al Java 8 ( actualmente uso el 8 ), esto me da a pensar que hubo algún cambio ligero en la sintaxis, por otro lado... lo ando haciendo mal.


    Código: [Seleccionar]
    package Otro;

    public class Break_Etiqueta
    {
       public void iniciar()
       {
          for (int i = 0; i < 20; i++)
          {
             System.out.println("Inicia!");
             System.out.println("Actual:");
                            if(i == 10) break salida;
                            System.out.println("Termina!\n");
          }
          System.out.println("Terminado");
          salida:
             {
                System.out.println("Salio");
             }
       }
       
       public static void main(String[] args)
       {
         
       }
    }

    Imagen


    Siempre es bueno ver otras opiniones.
    « Última modificación: Mayo 16, 2015, 10:51:14 pm por Reynald0 »
    Hay dos caminos; aprender a hacer lo que quieres o pagar para que alguien más lo haga.
    WTS Servicios de desarrollo
    - Facebook: https://goo.gl/DCzNiG
    - Youtube: https://goo.gl/a7m6tc
    - Messenger: https://goo.gl/QzgEBe

    Conectado Fissban

    • AdminSite
    • *
    • Mensajes: 5622
    • ar
    • Agradecimientos: 1650
      • Mis Proyectos
    • Cronica: : Scions of Destiny
    • Revision: Last
    • S.O: Windows 10
    • Serverpack : L2jAdmins
    Re:Ciclo for - etiquetas
    « Respuesta #1 en: Mayo 16, 2015, 11:25:35 pm »
    gracias
    Este post tiene 0 agradecimientos
  • Añade a tus favoritos
    la verdad jamas escuche eso de "salida" y creo q era algo como para ejemplificar q otra cosa, lo ideal seria esto

    package Otro;


    Código: [Seleccionar]
    public class Break_Etiqueta
    {
       public void iniciar()
       {
          for (int i = 0; i < 20; i++)
          {
             System.out.println("Inicia!");
             System.out.println("Actual:");

             if(i == 10)
    break;
             System.out.println("Termina!\n");
          }
     
          System.out.println("Terminado");
          System.out.println("Salio");
       }
       
       public static void main(String[] args)
       {
         
       }
    }

    El "break" en este caso lo q hace es finalizar el ciclo del foro y continua ejecutando lo q halla a continuacion, en este especifico seria esto


    Código: [Seleccionar]
          System.out.println("Terminado");
          System.out.println("Salio");

    Se q en otros lenguajes se podia indicar a que linea saltar para continuar ejecutando pero jamas lo vi en java.

    Conectado ReynalDev

    • Administrator
    • *
    • Topic Author
    • Mensajes: 4846
    • mx
    • Agradecimientos: 1692
    • I took a pill in Ibiza
      • ReynalDev
    • Cronica: : Interlude, C4
    • Revision: 1132, FREE,582
    • S.O: Linux CentOS
    • Serverpack : Frozen,aCis,Lisvus
    Re:Ciclo for - etiquetas
    « Respuesta #2 en: Mayo 16, 2015, 11:56:14 pm »
    gracias
    Este post tiene 0 agradecimientos
  • Añade a tus favoritos
    Si existen se llaman labeleds o etiquetados. Los break y continue los conozco pero al parecer los etiquetados tienen un uso.
    Hay dos caminos; aprender a hacer lo que quieres o pagar para que alguien más lo haga.
    WTS Servicios de desarrollo
    - Facebook: https://goo.gl/DCzNiG
    - Youtube: https://goo.gl/a7m6tc
    - Messenger: https://goo.gl/QzgEBe

    Conectado Fissban

    • AdminSite
    • *
    • Mensajes: 5622
    • ar
    • Agradecimientos: 1650
      • Mis Proyectos
    • Cronica: : Scions of Destiny
    • Revision: Last
    • S.O: Windows 10
    • Serverpack : L2jAdmins
    A Kimeraweb le gusta este post.

    Re:Ciclo for - etiquetas
    « Respuesta #3 en: Mayo 17, 2015, 12:39:45 am »
    gracias
    Este post tiene 1 agradecimientos
  • Añade a tus favoritos
    Si existen se llaman labeleds o etiquetados. Los break y continue los conozco pero al parecer los etiquetados tienen un uso.

    quizás, pero hoy q tenemos una programación en bloque no son necesarios en lugar de usar una etiquetas para q el codigo salte a una parte especifica puedes hacerlo mediante un método....probablemente en los lenguajes de programación lineales esto debieron ser muy populares como en "pascal" :P
    la verdad q sin leer e instruirme mas en el tema no les veo funcionalidad ni mayor importancia.

    Desconectado Hefester

    • L2j Developer
    • *
    • Mensajes: 266
    • ar
    • Agradecimientos: 70
    • Cronica: : Interlude
    • Revision: -
    • S.O: Windows 10
    • Serverpack : L2J
    Re:Ciclo for - etiquetas
    « Respuesta #4 en: Mayo 17, 2015, 01:07:40 am »
    gracias
    Este post tiene 0 agradecimientos
  • Añade a tus favoritos
    Nunca se crea la etiqueta "salida" se pone antes del for osea: salida:for (code)

    Conectado Kimeraweb

    • AdminSite
    • *
    • Mensajes: 2418
    • de
    • Agradecimientos: 780
    • Kimeraweb
      • http://l2devsadmins.net
    • Cronica: : Alfa
    • Revision: Alfa
    • S.O: Windows 10
    • Serverpack : Desarrollo interno
    A Fissban le gusta este post.

    Re:Ciclo for - etiquetas
    « Respuesta #5 en: Mayo 17, 2015, 08:42:32 am »
    gracias
    Este post tiene 1 agradecimientos
  • Añade a tus favoritos
    Si, entiendo la confusión. Quieres usar el label para dirigir el control de flujo del código, y quieres que salte hacia la etiqueta.

    No funciona así.

    La etiqueta sirve para ponerle un nombre al bucle.


    Código: [Seleccionar]
    bucle1:
    for (...)
    {
       bucle2:
       for(...)
      {
          bucle3:
          for (...)
          {
              if (algo) { break bucle1 }
          }
      }
      System.out.println("FIN del bucle2");
    }
    System.out.println("FIN a todo");

    y el control de flujo se dirige al primer comando que haya después del bucle etiquetado.

    En el ejemplo el break saldrá del tercer y del segundo bucle, mostrando únicamente "FIN a todo".

    Por tanto, no se puede usar el "break" de Java como el "goto" de Basic.

    Como afirma fissban, en los lenguajes de programación lineales, esto era obligado, no existen funciones. Pero por cuestiones de eficiencia y reutilización de código, esta práctica no existe en los lenguajes orientados a objetos.

    Buen post!
    "Sólo existen dos días al año en los que no se puede hacer nada: ayer y mañana" (Dalai Lama)

    Conectado ReynalDev

    • Administrator
    • *
    • Topic Author
    • Mensajes: 4846
    • mx
    • Agradecimientos: 1692
    • I took a pill in Ibiza
      • ReynalDev
    • Cronica: : Interlude, C4
    • Revision: 1132, FREE,582
    • S.O: Linux CentOS
    • Serverpack : Frozen,aCis,Lisvus
    Re:Ciclo for - etiquetas
    « Respuesta #6 en: Octubre 14, 2015, 03:25:00 pm »
    gracias
    Este post tiene 0 agradecimientos
  • Añade a tus favoritos
    En efecto, las etiquetas se usan para romper ciclos anidados.
    Hay dos caminos; aprender a hacer lo que quieres o pagar para que alguien más lo haga.
    WTS Servicios de desarrollo
    - Facebook: https://goo.gl/DCzNiG
    - Youtube: https://goo.gl/a7m6tc
    - Messenger: https://goo.gl/QzgEBe