Java 9のJShellでフィボナッチ数列を実装する方法を解説
JShellとは?
JShellは、Java 9で導入されたJavaシェルツールです。Javaコードを入力すると、その結果を即座に表示してくれるため、コードの動作確認や学習に非常に便利なツールとなっています。
JShellはREPL(Read-Evaluate-Print-Loop:読み込み・評価・出力・ループ)と呼ばれる仕組みを採用しており、コマンドラインから直接実行できます。クラスやmainメソッドを定義しなくても、単独の文や式を手軽に試せるのが大きな特徴です。
フィボナッチ数列とは
フィボナッチ数列とは、「各項が直前の2つの数の和」という規則で構成される数列のことです。具体的には以下のような数列になります。
0, 1, 1, 2, 3, 5, 8, 13, 21, ...
つまり、3番目以降の各数値は、その前の2つの数値を足し合わせたものになります。この規則は数学だけでなく、プログラミングの学習においても再帰処理やループ処理の定番の題材としてよく使われています。
JShellでフィボナッチ数列を実装する
それでは、実際にJShellを使ってフィボナッチ数列を実装してみましょう。まず、ターミナルまたはコマンドプロンプトでjshellコマンドを実行してJShellを起動します。
C:\Users\User>jshell
| Welcome to JShell -- Version 9.0.4
| For an introduction type: /help intro
jshell> int x=0, y=1, z=0, count=5;
x ==> 0
y ==> 1
z ==> 0
count ==> 5
jshell> {
...> System.out.println(x+"\n"+y);
...> for(int i=0; i<count; i++) {
...> x=y; y=z;
...> z = x+y;
...> System.out.println(z);
...> }
...> }
0
1
1
2
3
5
8
jshell>
コードの解説
上記のコードでは、以下の手順でフィボナッチ数列を生成しています。
- x = 0, y = 1:数列の最初の2つの値を初期化します。
- z = 0, count = 5:計算結果を格納する変数と、繰り返し回数を設定します。
- まず
xとyの初期値「0」と「1」を出力します。 - forループ内で、
x=y; y=z;によって変数を入れ替えながら、z = x + yで次のフィボナッチ数を計算します。 - 計算した値を順番に出力していきます。
実行結果について
実行結果として「0, 1, 1, 2, 3, 5, 8」が出力されています。これは、初期値の2つ(0と1)に加えて、ループ5回分の計算結果(1, 2, 3, 5, 8)が表示されているためです。それぞれの数値が直前の2つの数の和になっていることが確認できますね。
まとめ
JShellを使えば、わずか数行のコードでフィボナッチ数列を簡単に実装できます。ファイルを作成してコンパイルする必要がないため、アルゴリズムの動作確認やJavaの文法の学習に最適です。ぜひ、さまざまなロジックをJShellで気軽に試してみてください。
-
Java SwingのJButtonでHTMLテキストを実装する方法
JButtonはAbstractButtonのサブクラスであり、Java Swingのコンポーネント階層において非常に重要な役割を担うクラスです。JButtonは、ログイン画面を持つアプリケーションなど、ユーザーに操作を促す場面で広く利用されています。ボタンを押下・クリックすると、ActionListenerインターフェースを通じてアクションイベントが発生し、それに応じた処理を実行できます。また、JButtonにはテキストのみ、アイコンのみ、あるいはテキストとアイコンの両方を設定することが可能です。さらに便利な点として、ボタンのラベルにHTMLタグを使用できるため、太字(bold)や斜体(it
-
Javaでカウンタープログラムを実装する方法をわかりやすく解説
この記事では、JavaのSwingを使ってシンプルなカウンター(数を数える)アプリケーションを実装する方法を解説します。このプログラムでは、JLabelでカウント用のラベルを表示し、JTextFieldで現在のカウント値を保持し、JButtonで「追加(Add)」「削除(Remove)」「リセット(Reset)」の3つのボタンを作成します。 「Add」ボタンをクリックするとJTextField内のカウントが1ずつ増加し、「Remove」ボタンをクリックすると1ずつ減少します。さらに「Reset」ボタンをクリックすると、カウントは0にリセットされます。 実装例 import java.awt.*