はじめに
前回は再帰処理がどのようなものかについて見てきた。
前回の記事については以下参照。
【Javaプログラミング】再帰処理とは?returnを使用した処理-プロショvol.91
今回は、前回の再帰処理と一緒に「スキャナー」を使用してみることに。
スキャナーとは以前に取り上げたが、ユーザーからデータを入力することができる機能を持っている。
スキャナーについては以下参照。
スキャナー(Scanner)とは?取り込み方についても Vol.35-プロショ
再帰処理とスキャナーを使用したコード
以下に再帰処理とスキャナーを使用したコードを作ってみた。
今回も「階乗」を計算するもの。
ここに書いたものはあくまで一例で、もっと効率的な書き方があるかもしれないけど悪しからず・・・。。
System.out.println(“Enter your favorite number”);
Scanner A = new Scanner(System.in);
int B = A.nextInt();
System.out.println(“再帰処理の結果:”+SaikiShori.saiki(B));
}
static int saiki(int B) {
if(B<=0) {
return 1;
}
else {
return saiki(B-1)*B;
}
}
}
ユーザーから数字を入力できるようになっている。
好きな数字を入力すると、入力された数字で「階乗」の計算結果が表示される。
大まかに言うと、オレンジの部分が「スキャナー」に関するコード、ピンクの部分が再帰処理に関するコード。
スキャナーの部分の「int B = A.nextInt();」というのは、整数(intを使用している為)以外の文字を入力することを防ぐためのもの。
入力する文字の種類を指定したいときに使用するもの。
再帰処理のコードに関しては、前回の記事とほとんど同じ。
スキャナーでユーザーが入力したデータを「変数A」に保存、その後「変数Aは整数」と指定した「変数B」を作成した。
そのため表示して欲しいのは「変数B」が持っているデータということに注意。
これで自分で数字を設定しなくても、ユーザーが好きな数字を入力することで好きな数字で階乗の計算ができるようになった。
最後に
再帰処理とスキャナーを組み合わせたコードについてまとめた。
スキャナーは再帰処理だけでなく、色々な計算式などで使用することができる。
数学などの計算のプログラムを組んでおくと、ユーザーが計算してほしい数字を入力することで面倒な計算を一瞬で終わらせてくれる。
これからスキャナーが使えそうなものについては一緒に使用した例についても取り上げていこうと思う。
コメント