今回の記事ではJavaを使ってキーボードからの入力を繰り返し受け取る方法を紹介していきます。
挫折せずにプログラミングを学ぶために必要なこと
僕はプログラミングで挫折した経験があります。
それは周りに聞ける人がいなく、一人でエラーと戦っていたからです。
Freeksは月額10,780円という破格の値段で、現役エンジニアに質問する環境を手に入れることができるプログラミングスクールです。
次のような悩みを少しでも抱えていたら、まずは無料カウンセリングを受けてみてください。
申込みは1分でできます。学習する環境にお金を使うというのは良い自己投資になります。
>>Freeksの無料カウンセリングはこちら
キーボード入力を受け取る方法
今回は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文を組み合わせて、ループを抜ける!
挫折せずにプログラミングを学ぶためには?
僕はプログラミングで挫折した経験があります。
エラーの連続やエラーが解消しても思った通りに動かないといったことが原因で、プログラミングが嫌いでした。
「プログラミングって全然意味わからないし、全然楽しくない」そう思っていました。
原因は当時周りに聞ける人が誰もいなかったからです。
プログラミング学習をしていく上で周りに聞ける環境というのはとても大切です。
周りに聞ける人なんていない
そんな人におすすめなのが月額10,780円で現役エンジニアに質問できる、プログラミングスクールのFreeksです。
多くのプログラミングスクールが数十万円払って通うところを月額10,780円から通うことができるのはコスパが良いです。
しかもサブスク制で、自分のペースで学ぶことができ嫌になったらすぐにやめることができます。
「周りに誰も聞ける人がいなくて、エラーが解決できない」「プログラミング全然楽しくない」という方は、無料カウンセリングを受けてみて下さい。
【関連記事】Freeks評判、口コミ