■ キーボードからの文字入力 |
キーボードから値を入力する最もシンプルな方法は、1文字づつプログラムに入力してくる方法です。それを実現するのが 、以下のような命令です。 System.in.read();しかし、通常1文字だけのデータは少なく、複数文字を入力して、復帰改行(エンター)すると、入力した文字がプログラムに渡されるという方が使いやすいです。 そこで、文字列を1行単位で入力するためには、次のようにキーボードの入力先を記述しておく必要があります。 BufferedReader kbd = new BufferedReader(new InputStreamReader(System.in));これは、文字列入力先に kbd (keybordのつもり) という名前をつけて、それで文字列入力ができるということを宣言しています。入力先の名前は自分で自由に付けることができます。
テキストの3章に説明されているプログラムは、入力先を指定してデータを入力する典型的な例です。ここでは、この方法を使って、「名前」と「年齢」を入力し、その値を表示するプログラムを次に示します。
このプログラムで新しく使われている命令は、以下の3行です。
[egi@taro]$ java JcInput1 名前?egi 年齢?45 名前はegiです。 年齢は45です。 [egi@taro]$
|
■ 入力した数値を計算に使う |
上記の方法による入力でも、入力された値はすべて文字列です。したがって、数値を入力して、その値を何らかの計算に使いたい場合は、文字列の数値を数値型に変換する必要があります。 次のプログラムは、身長を入力し、標準体重を計算して出力するプログラムです。 // 数値を入力し、計算結果を表示する。 import java.io.*; public class JcInput2{ public static void main(String[] arges) throws IOException { String sincho; int dt; BufferedReader kbd = new BufferedReader(new InputStreamReader(System.in)); System.out.print("身長?"); sincho = kbd.readLine(); dt = Integer.parseInt(sincho); System.out.println("身長は"+sincho+"です。"); System.out.println("標準体重は"+((dt-100)*0.9)+"です。"); } }このプログラムで使われている、Integer.parseInt( )は、( )内に記述されたString型のデータをint型のデータに変換してくれます。
上記のプログラムを実行すると、「身長?」というメッセージが表示され、身長を 156と入力すると、次のように結果を出力してプログラムが終了します。
|
|