キーボードからの入力
キーボードからの入力
さてここでもう一度、ユーザーが入力した文字や数値を画面に表示するプログラムのことを考えてみましょう。
VariableSample01.javaの
name = "本"; price = 2000; rate = 4.2;
の部分を
name = (ユーザーが入力した商品名); price = (ユーザーが入力した値段); rate = (ユーザーが入力した評価);
のように発展させれば、目的のプログラムが実現できそうですね。では、VariableSample01.javaを改良して、ユーザーによるキーボード入力に対応させてみましょう。
VariableSample01C.java
import java.io.*; class VariableSample01C { public static void main(String[] args) throws IOException{ String name;//商品名 int price;//値段 double rate;//評価 BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); System.out.println("商品名を入力してください。"); name = br.readLine();//商品名を入力 System.out.println("値段を入力してください。"); price = Integer.parseInt(br.readLine());//値段を入力 System.out.println("評価を入力してください。"); rate = Double.parseDouble(br.readLine());//評価を入力 System.out.println("商品名: " + name); System.out.println("値段: " + price + " 円"); System.out.println("評価: " + rate + " 星"); } }
いきなりいろいろなものが出てきて驚かれたかもしれません。まずは、
import java.io.*;
の部分ですが、これはIOExceptionやBufferedReaderなどのクラスを利用するために必要なインポートというものです。 mainメソッドに続く
... throws IOException
の部分は例外を送出するメソッドであることを宣言しています。そして、
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
の部分は、キーボードから文字列を読み込むためのBufferedReaderクラスのインスタンスを生成して、brという変数に代入しています。インポート、例外、インスタンスなどについては後ほど詳しく説明しますので、今はわからなくても気にする必要はありません。
実際にキーボードからの入力を受け付けているのは、
name = br.readLine();//商品名を入力
の部分です。ここまで処理が進んできたら、キーボードから文字列を打ち込み、return(enter)キーを押して入力を完了するまで、処理は止まったままとなります。そして、文字列の入力が完了すると、その値がnameに代入されます。また、
price = Integer.parseInt(br.readLine());//値段を入力
の部分もキーボードからの入力を受け付けているのですが、少し様子が違います。
br.readLine()
によって得られる値はあくまでもString型であって、int型の値ではないのです。ですから、
Integer.parseInt(br.readLine())
という処理によって、int型に変換してから、priceへ代入する必要があるのです。この変換方法についても今は深入りしません。
rate = Double.parseDouble(br.readLine());//評価を入力
についても同様です。では、実行結果を見てみましょう。
VariableSample01Cの実行結果
商品名を入力してください。 パソコン 値段を入力してください。 140000 評価を入力してください。 4 商品名: パソコン 値段: 140000 円 評価: 4.0 星
いかがですか。ほんの少しですが、人間とコンピュータのやり取りが実現されたことになります。プログラミングが初めての人にとっては、なかなか面白く感じるところではないでしょうか。
キーボード入力を受け付けるコードの基本形は次のようになります。この形は今後もたびたび登場するでしょう。まだ不明な部分もありますが、今はこういうものだと思っておいてください。
構文 : キーボード入力
import java.io.*; public class クラス名 { public static void main(String[] args) throws IOException{ String 変数名; ... BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); ... 変数名 = br.readLine(); ... } }
入力した値を変数に保管しておけば、いつでもそれを利用できる。