Java 9のJShellで制御フローステートメントを記述・実行する方法
JShellは、Java 9で新たに導入された対話型のコマンドラインツールです。入力を受け取り、その場で評価し、結果をコマンドライン経由でユーザーに返すという動作をするため、REPL(Read-Eval-Print-Loop)とも呼ばれています。
JShellでは、通常のJavaと同じように複数行にわたる制御フローステートメントを実行できます。if-else文、forループ、whileループといった基本的な制御構文もそのまま利用可能です。複数行のステートメントを入力する場合、継続行には「...>」というプロンプトが表示され、次の行の入力を促す仕組みになっています。
if-else文の例
jshell> int distance = 50
distance ==> 50
jshell> if(distance < 30) {
...> System.out.println("It's near");
...> } else {
...> System.out.println("It's far");
...> }
It's far
jshell>
whileループの例
jshell> int i = 10
i ==> 10
jshell> while(i < 25) {
...> System.out.println(i + " ");
...> i++;
...> }
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
jshell>
forループの例
jshell> String names[] = {"Adithya", "Jai", "Raja", "Chaitanya", "Ravi", "Surya"}
names ==> String[6] { "Adithya", "Jai", "Raja", "Chaitanya", "Ravi", "Surya" }
jshell> for(String name : names) {
...> System.out.println(name);
...> }
Adithya
Jai
Raja
Chaitanya
Ravi
Surya
jshell>
このように、JShellを使えば小さなコード断片をその場で試しながら、条件分岐や繰り返し処理などの制御フローを手軽に検証できます。学習用途やプロトタイピングに非常に便利なツールです。
-
Java 9のJShellでシステムプロパティを取得する方法【コード例付き】
JShellは、REPL(Read-Evaluate-Print-Loop)と呼ばれる対話型ツールです。main()メソッドを持つクラスを作成しなくても、簡単なJavaの文を入力するとその場で評価され、結果がすぐに表示されます。起動も簡単で、コマンドラインプロンプトで「jshell」と入力するだけでOKです。 システムプロパティを取得するには、System.getProperty()メソッドとSystem.getProperties()メソッドを使用します。 まずは、Systemクラスのstaticメソッドであるproperty()を使って、特定のシステムプロパティの値をJShell上で表示
-
Java 9でJavaFXを使ってJShellをプログラムから実装する方法
JShellは、サンプル式を対話的に実行できるツールです。通常はコマンドラインから利用しますが、JavaFXアプリケーションの中でプログラム的にJShellを実装することも可能です。その場合、Javaプログラムに以下のパッケージをインポートする必要があります。import jdk.jshell.JShell; import jdk.jshell.SnippetEvent; import jdk.jshell.VarSnippet;これらのクラスの役割は次のとおりです。JShell:評価エンジンの本体。式や文を評価(eval)するためのAPIを提供します。SnippetEvent:評価結果として