TopPage > 演習課題 > 小課題

Javaプログラミング演習の確認(まとめ)

ここで,演習1の理解度を確認するために,小課題を行います.

みなさんの理解度を確認するために,課題のプログラムができたら,ソースコードを提出してください.

※提出されたソースコードの出来は、最終評価の点数には関係しません.できるところまで,やってみてください. わからなければ,吉野またはTAに質問してください.

提出期限

提出先:以下の2人の TA のメールアドレスに".javaファイル"を添付して送ってください。
件名:Javaプログラミング小課題-60226???(名前)

長田(TA,大学院1年): dedenne110@gmail.com
梅本(TA,大学院1年): gorebyss368@gmail.com
※メールの本文もちゃんと書くようにしましょう!書き方は調べれば出てきます.
※動作確認をして返信します.少し時間がかかるかもしれませんが待っていてください.一週間たっても返事がない場合,TAまで連絡をください.

サンプルプログラムの紹介

まず,以下のサンプルプログラムをダウンロードしてください.

&ref(): File not found: "Ensyu.java" at page "情報システム開発演習(Java演習)";/ソースコードファイルを見る

サンプルプログラムを実行すると,以下のような表示が出ます.

現在の値: 0
命令を入力してください:

ここで,何か値(例としてABC)を入力すると,

命令を入力してください: ABC
命令ABCは解釈できません.
現在の値は:0

と表示され,「命令を入力してください」に戻ります. EXITと入力すると,文字入力のループを終了します.

課題

命令文を入力すると,内部の値(現在値)が変わる計算プログラムを作成してください.
現在の値を表す変数名はvalueにしています.

具体的には,

ADD 100 [Enterキー]

と入力すると,プログラムの「現在の値」に100を加算します. 同様に,

SUB 50 [Enterキー]

と入力すると,プログラムの「現在の値」から50を減算します.

このように,命令語と数値1つを与えると,プログラム内の「現在の値」を操作して,表示するプログラムを作成してください.

ヒント1

  1. 命令文にある数値文字列を,数値(int型)に変換する処理
  2. 4つの命令語を認識し,適切な計算をする処理

サンプルプログラム中の適切な場所に,

// (1) 2つ目の要素があれば,文字列から数値に変換する.

のように,コメントを挿入していますので,参考にしてください.もちろん他の部分も修正OKです.

ヒント2

String[] item = readdata.split(" ");
を使うと、入力データが ADD 40 のときは、
item[0]は、ADDが入っています。
item[1]は、40が入っています。
ただし、item[1]に入っている40は文字の40なので計算ができないので、
Integer.parseIntを使って数字に変換する必要があります。

ヒント3

ADDなどの命令の追加場所は、
if (operator.equalsIgnoreCase("EXIT"))の前くらいです!

ヒント4

「2つ目の要素があれば,文字列から数値に変換する」は、
if文で条件わけをしましょう!
if (item.length > 1)を使うと、itemという配列が1個なのか
2個以上なのかを区別できます!

発展(余裕があったらどうぞ.必須ではありません.)

ADD A
ADD
ADDD
(何も入力しない)

よくあるエラー

try-catchとは try-catchは,何らかの例外が発生するところで利用します(C言語にはないので,とっても便利な機能です!). 「例外」というは,正しく動けば問題ないけど,なにかがおかしいとき=例外 です. 下の例では,tryブロックの中で,バッファから読み込んだ時に, 読み込めなかったら,catchブロックにはいります.

try {
    //バッファから一行読み込みます
    readdata = br.readLine();
} catch (Exception ex) {
    // 読み込み失敗時は,EXITする
    readdata = "EXIT";
}

以下,例外の一例です.

   catch (Exception ex) 

で例外はつかまえられますが,細かい例外を使い時があります. いくつか紹介します.

ArrayIndexOutOfBoundsException //配列の境界を越えた例外.int a[6]までしか確保していないのに,a[6]にアクセスしたとか~
NullPointerException //確保されていない領域になにかした~
FileNotFoundException //ファイルが見つからない~

など,いろいろあります. それぞれの例外をつかまえて(catch) して処理を変えるなども可能ですね. 以下,例を示します.

try{
  例外が発生するかも知れない文1;
  例外が発生するかも知れない文2;
  例外が発生するかも知れない文3;
.....
}
catch (例外クラス1 変数名1){
  例外クラス1の例外が発生した時に実行する文;
 .....
}
catch (例外クラス2 変数名1){
  例外クラス2の例外が発生した時に実行する文;
 .....
}
.... 対応したい例外だけ,catchを書く
finally {
  例外が発生してもしなくても,実行する文; // finally ブロックはなくてもいい.
  ...
} 

next.gif 演習のページに戻る


トップ   一覧 単語検索 最終更新     最終更新のRSS