第4講:もっともシンプルな「時間割表示システム」を拡張する |
その1 「授業の情報」のキーボード入力を受付させる(1) |
ここから先はすでに完成済みのもっともシンプルな「時間割表示システム」を拡張してゆきます。まずはじめに、「ClassInfo.java」のメイン・メソッドを書き換えて、「授業の情報」をキーボードから入力できるようにします。ここでは、そのために必要な「BufferedReaderクラス」の利用方法と「入力エラー」への対処法などのJavaプログラムに関する知識を中心に学習します。 |
(1) 「授業の情報」のプログラム外部からの入力 今のところ「ClassInfo.java」が表示する「授業の情報」は、あらかじめプログラムの中に書き込まれていました。このままだと、もしも情報の内容を変更したい場合などには、プログラムのファイルに直接変更を加えなければならず、扱う情報の量が増えた場合などには大変不便になります。できればプログラム自身とそれが扱う情報とは分けておきたいものです。 そのためにはプログラムが、プログラム自身の外部に保存された情報の入力を受け付けるようにしなければなりません。外部からの入力先としては、プログラムとは別に情報だけが保存されている「ファイル」からの入力と、人間が打ち込む「キーボード」からの入力という二つが考えられます。 そこでまずは今回外部からの情報の入力方法として、キーボードからの入力を受け付ける方法を学びます。具体的にはプログラムを起動したときに「時限」「科目名」「教室名」の入力をキーボードからユーザー自身に行わせ、そのとき入力された内容をオウム返しにディスプレイに表示させるように「ClassInfo.java」を書き換えます。 |
(3)入力エラーへの対処 キーボード入力の命令(readLineメソッド)を実行する場合には、何らかの原因による「入力エラー」発生の可能性があります。例えばキーボードのケーブルがコンピュータからはずれていたり、キーボードの上に物がのっかっていてキーがずっと押された状態になってしまい過大な量の情報が入力されたりと、いろいろな可能性が考えられるのです。Javaではこうしたメソッドの操作が想定していない緊急事態を「例外」として定義し、もしも「例外」が起こった場合プログラムを終了するなど何らかの対処を施せるしくみを用意しています。そして、「readLine」のように「例外」が起きる可能性のあるメソッドを起動する場合、そのしくみとワンセットで使用することを義務づけています。 例えば以下の緑字の書式に従うと、「readLine」で例外が発生した時点でプログラムの処理が中断され「例外が起きた場合に実行する命令」を行ってプログラムが終了します。例えばエラーが発生したことをユーザーに知らせるメッセージの表示等です。このようにしておけば、万が一のプログラムの暴走が防げます。
メイン・メソッドを始め、自分でメソッドの処理手順を記述して定義する際に、その手順の一つとしてこのような「例外」の可能性を含むメソッドの利用がある場合には、以下のようにメソッド名の定義の後すぐに「try{ }」で処理手順全体を囲むと安全です。
|
リンク: <全体のトップページ> | <第4講のトップページ> |-------------------------| <第4講・その1> <第4講・その2>