26.1.8.1 入力の難しさ

Javaのプログラムは,ソースコードを作り,それを(javacで)コンパイルして,その結果できるクラスファイルの内容を(javaで)実行する,という段階を経て動作させます.つまり,動作する内容はプログラム作成時の環境に依存することになります.言いかえれば一度コンパイルしたプログラムを少し変更するのにも,またコンパイルからやり直す必要があるのです.これでは,テストデータや配列のサイズなどの,ちょっとした値の変更をする場合に大変不便です.また,プログラムの実行時点でしか決まらない値などは扱うことができません.

以上の問題は,実行時に,すなわちプログラムが走り始めてからプログラムにデータを渡す仕掛けによって解決できます.これをプログラムへの入力(input)と呼びます.これに対して,これまでに扱ってきたプログラムからの結果の表示を出力(output)と呼びます.入力と出力とは,プログラムが外界とのやりとりをするための大切な機能と言えます.

外国語を学ぶときには,書くことよりも読むこと,話すことよりも聞くことが,それぞれ難しいとされています.書いたり話したりする場合は,その内容を自分が知っていて,制御することができるからです. これに対して読んだり聞いたりする場合は,内容の主導権は相手にありますから,まず大枠を理解しなければならず,話す場合とは難しさが違ってきます.とくに聞きとりは時間的な制約も加わって,最も難しいものとなります.

コンピュータのプログラムでも同様で,出力は指定どおりにできますが,外から入ってくる入力データには誤りや考え違いがあるかも知れず,素直に受けとれないことも多くあります.そこで,プログラム言語の中においても,画面表示の機能とキーボード入力の機能とを比べると,入力の方がはるかに複雑なものとなっているのです.

Javaの入力は,他の言語と比べても一段と複雑な構成となっています.その主な理由は,Javaが安全性や信頼性に特に重きを置いて設計されているからです.以下で少しその様子を見てゆきましょう.