in

Cómo saltar en Java

apple touch icon@2

Básicamente, no hay una forma práctica de hacerlo en Java. Parece que intentas hacer el equivalente a «ir a», y eso no es compatible con Java. los break label y continue label Las declaraciones solo pueden ramificarse a un encerrando declaración etiquetada.

Ahora, de acuerdo con la gramática formal de Java, podría escribir esto:

  s: {
      continue s;
      System.out.println("I am not supposed to print this");
  }
  System.out.println("I am suppose to print this");

pero eso todavía no se compilará por dos razones:

  • La continuación solo puede ramificarse a una etiqueta en una declaración de bucle. (A break no tiene esa restricción … pero …)

  • los continue (o un break) hace que la siguiente declaración sea inalcanzable.

Ver también: Alternativa a una instrucción goto en Java


Pero hay una forma bastante complicada de hacer que su código «funcione»:

  static final boolean flag = true;  // class attribute ...

  ...

  s: {
      if (flag) break s;
      System.out.println("I am not supposed to print this");
  }
  System.out.println("I am suppose to print this");

La «prueba» será evaluada por el compilador para que el break es efectivamente incondicional. Pero la JLS dice que la primera println estarán tratado como alcanzable, para que no obtenga un error de código inalcanzable.

Supongo que esto podría ser útil si eres generando este código fuente. Aparte de eso, es (OMI) solo una curiosidad. Es más sencillo hacer esto con un if / else declaración … o eliminando la primera «impresión» por completo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

175770 1516188802

¿Cómo configurar la alineación del encabezado en HTML?

G79YngbW86RJ2QtzFfZEu3 1200 80

Utilice estos fondos de pantalla oficiales de New Horizons como fondo de Zoom para disfrutar de las vibraciones de la isla eterna