Java 標準入力
Javaで標準入力から渡された数字を、例えばdouble型の値として処理しようとした場合、一般的な書籍のほとんどで次のような方法が紹介されています。
import java.io.*; public class Example { public static void main(String args[]) { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); try { System.out.println("値を入力してください"); double d = Double.valueOf(br.readLine()).doubleValue(); System.out.println("入力した値の2乗は" + (d*d)); } catch(IOException e) { } } }
プログラムの楽しみは、「プログラムに値を渡すと、それに応じた結果が出てくる」ということを、様々に体験することだと思うのですが、その第一歩として、この方法はちょっと敷居が高いような気がします。BufferedReader のインスタンスを作るところは「おまじないだよ」と言ってしまうとしても、それが結構長いし、double型の値を取得するところも煩雑、try 〜 catch構文も必要だったりして大変です。
でも、Scannerクラスを使うと結構簡単。同じことが次のコードで実現できてしまいます。
import java.util.*; public class Example { public static void main(String[] args) { Scanner s = new Scanner(System.in); System.out.println("値を入力してください"); double d = s.nextDouble(); System.out.println("入力した値の2乗は" + (d*d)); } }
授業の中の例題では、こちらを使うようにしようと計画中。