El uso de bloques en jshell de java

Video: JShell: An Interactive Shell for the Java Platform by Robert Field

Java 9 se completa con un entorno interactivo JShell. Escribe un comunicado, y JShell responde inmediatamente ejecutando la sentencia. Eso está bien para declaraciones simples, pero lo que sucede cuando se tiene una declaración en el interior de un bloque?

En JShell, puede empezar a escribir una declaración con uno o más bloques. JShell no responde hasta que termine de escribir toda la declaración - bloques y todo. Para ver cómo funciona, mirar por encima de esta conversación que tuvo lugar con Jshell:

jshellgt; importación estática java.lang.System.out

Video: How to use Java REPL (Read-Eval-Print-Loop) - JShell

jshellgt; importación java.util.Random

jshellgt; int randomNumber = new Random (). nextInt (10) + 1

randomNumber == gt; 4

jshellgt; int númeroEntrada = 4

númeroEntrada == gt; 4

jshellgt; si (númeroEntrada == randomNumber) {

...gt;out.println ("*Tú ganas.*") -

...gt; }

*Tú ganas.*

jshellgt;

En este diálogo, el texto que se ha escrito está en negrita. Las respuestas de JShell no están escritas en negrita.

Al escribir si (númeroEntrada == randomNumber) { y pulse Intro, JShell no hace mucho. JShell sólo muestra una ... gt; pronta, lo que indica que todo lo que ha escrito líneas no forman una declaración completa. Hay que responder escribiendo el resto de la Si declaración.

Cuando termine la instrucción if con una llave de cierre rizado, JShell finalmente reconoce que haya escrito una declaración completa. JShell ejecuta la sentencia y (en este ejemplo) muestra *Tú ganas.*.

Observe el punto y coma al final de la línea de out.println:

  • Al escribir un comunicado que no está dentro de un bloque, JShell le permite omitir el punto y coma al final de la instrucción.
  • Al escribir un comunicado que está dentro de un bloque, JShell no le permite omitir el punto y coma.

Cuando se escribe un bloque en JShell, siempre tiene la opción de escribir todo el bloque en una línea, sin saltos de línea, así:
si (== númeroEntrada randomNumber) {out.println ("*Tú ganas.*") -}

Artículos Relacionados