
今回の記事ではJavaを使ってキーボードからの入力を繰り返し受け取る方法を紹介していきます。
キーボード入力を受け取る方法
今回はScannerを使ってキーボードからの入力を受け取ります。
JavaではScannerの他にもBefferedReaderを使うことによってキーボードからの入力を受け取ることができます。詳しくは次の記事も参考にしてみてください。
Scannerクラスを使ってキーボード入力を受け付ける
基本的なScannerクラスの使い方は以下のとおりです。
import java.util.Scanner;
public class Kurikaeshi {
public static void main(String[] args) {
System.out.println("好きな偉人を教えてください");
// Scannerクラスのインスタンスを生成する
Scanner scan = new Scanner(System.in);
// キーボードからの入力を受け取り変数に格納
String greatMan = scan.nextLine();
// 入力された値を使って出力する
System.out.println("あなたが好きな偉人は" + greatMan + "なんですね");
}
}
これを実行すると好きな偉人を聞かれます。
好きな偉人を教えてください
ニーチェ
あなたが好きな偉人はニーチェなんですね
キーボード入力を繰り返し受け付ける処理
今度はこれを繰り返し聞くようにプログラムを変更してみます。
while(true)を使うことによって無限ループとなり、何度もキーボードからの入力を受け付けることになります。
次のプログラムを確認してください。
import java.util.Scanner;
public class Kurikaeshi {
public static void main(String[] args) {
// Scannerクラスのインスタンスを生成する
Scanner scan = new Scanner(System.in);
// 無限ループとなり永遠とキーボード入力を受け付ける
while(true) {
System.out.println("好きな偉人を教えてください");
// キーボードからの入力を受け取り変数に格納
String greatMan = scan.nextLine();
// 入力された値を使って出力する
System.out.println("あなたが好きな偉人は" + greatMan + "なんですね");
}
}
}
これを実行すると何度も偉人の入力をすることになります。
好きな偉人を教えてください
ニーチェ
あなたが好きな偉人はニーチェなんですね
好きな偉人を教えてください
ソクラテス
あなたが好きな偉人はソクラテスなんですね
好きな偉人を教えてください
アリストテレス
あなたが好きな偉人はアリストテレスなんですね
好きな偉人を教えてください
while(true)による無限ループでキーボードからの入力を繰り返し受け取る!
特定の文字が入力された時に繰り返しを終了する
このままだと永遠と好きな偉人を聞かれ続け、いつしかネタがなくなってしまいます。
なので特定の文字列が入力された時に処理を終了するようにプログラムを変更します。
今回は「q」が入力された時に処理を終了するようにしましょう。
次のプログラムを確認してください。
import java.util.Scanner;
public class Kurikaeshi {
public static void main(String[] args) {
// Scannerクラスのインスタンスを生成する
Scanner scan = new Scanner(System.in);
// 無限ループとなり永遠とキーボード入力を受け付ける
while(true) {
System.out.println("好きな偉人を教えてください");
// キーボードからの入力を受け取り変数に格納
String greatMan = scan.nextLine();
// break文を使ってqが入力されたときはループを抜ける
if ("q".equals(greatMan)) {
break;
}
// 入力された値を使って出力する
System.out.println("あなたが好きな偉人は" + greatMan + "なんですね");
}
System.out.println("繰り返し処理を終了しました");
scan.close();
}
}
if文で条件判定をして、qが入力された場合にbreakでループを抜ける処理を加えています。
これを実行してみます。
好きな偉人を教えてください
ニーチェ
あなたが好きな偉人はニーチェなんですね
好きな偉人を教えてください
アリストテレス
あなたが好きな偉人はアリストテレスなんですね
好きな偉人を教えてください
始皇帝
あなたが好きな偉人は始皇帝なんですね
好きな偉人を教えてください
ビスマルク
あなたが好きな偉人はビスマルクなんですね
好きな偉人を教えてください
q
繰り返し処理を終了しました
繰り返しキーボードからの入力を受け付け、qが入力された時のみ処理を終了することができました。
if文とbreak文を組み合わせて、ループを抜ける!
まとめ
今回はJavaでキーボード入力を繰り返し実行する方法について解説してきました。
JavaではScannerクラスを利用することで、キーボードからの入力を受け付けることができます。
While文で無限ループとすることで、キーボード入力を繰り返し実行することができます。
プログラミング学習はUdemyがおすすめ
私はプログラミングの学習はUdemyで行うのが一番おすすめです。
Udemyでは動画講座でプログラミングなどのスキルを身につけることができます。
現役エンジニアがUdemyをオススメする理由は
・動画で好きなときに学べる
・一流の講師に学ぶことができる
・講師の方に質問ができる
・返金保証もある
・セールを頻繁に開催している
といったたくさんの理由があります。
現在Udemyではセールを開催しています!
通常時1万円から2万円前後の価格で講座が販売されていますが、セール時には1500円前後(ランチ代くらい)で一つの講座を購入することができます。
UdemyにはサーブレットでWebアプリ開発が学べる講座もあるので、JavaでWebアプリ開発する方法を学んでみたい!という方は今がチャンスです!
独学が不安な人へ
独学で学んでいく意志がある方にはUdemyなどで学習するのがおすすめですが、プログラミングを独学するにはそれなりにハードルがあります。
- プログラミングで一度挫折した経験がある
- 一人で学習する自信がないので、サポートが欲しい
という方にはプログラミングスクールを検討してみるのがおすすめです。