・   「Java入門編」 第4回

4:条件分岐の記述(その2)

「条件分岐」の構造について詳しく練習します。 if-else ブロックの少し複雑な使用方法、 switch-case の記述、などを確認してみましょう。


・ 準備:

  1. LinuxもしくはWindowdsの環境でログインしなさい。
  2. 作業のための端末エミュレータのウィンドウを開きなさい。
  3. ホームディレクトリの下の Javaの作業用のディレクトリ java の中に移動しなさい。

・ 基本課題1:「条件分岐のない処理」
時刻や日付の情報を得るには、 java.util.Calendar クラスの機能を利用できました。 この後のプログラムでも利用するので使い方を復習しておきます。

  1. ソースファイル CalendarTest.java を作成しなさい。
  2. javac コマンドでコンパイルをしなさい。
  3. java コマンドを通じてプログラムを実行しなさい。
  4. 現在の日時の情報が出力されることを確認しなさい。 ただし、月の情報は期待していた値と微妙に異なるはずです
  5. 何度か繰り返して実行し、常に現在の情報が取得できることを確認しなさい

・ 基本課題2:「if-elseブロックの { }の省略」
ブロック内の処理が単独の式の場合のみ、ブロックの { }を省略できます。
乱数の発生には前回の実習と同じく、 java.lang.Math クラスの機能を利用します。 random()の命令は0.0から1.0までの間の double型の値をランダムに返します。 その値によって「コイントス」の結果を選択することにします。

  1. ソースファイル CoinToss.java を作成しなさい。
  2. javac コマンドでコンパイルをしなさい。
  3. java コマンドを通じてプログラムを実行しなさい。
  4. 2つのメッセージのうちの1方だけが出力されることを確認しなさい
  5. 何度か繰り返して実行し、メッセージがランダムに選択されることを確認しなさい

・ 基本課題3:「if-elseブロックの二重構造」
今度は少し複雑な if-else です。 条件分岐の内部にさらに条件分岐を記述します。

  1. ソースファイル GoodMorning.java を作成しなさい。 (前回の応用課題で作成した人は、同じ名前で内容を追加しなさい)
  2. javac コマンドでコンパイルをしなさい。
  3. java コマンドを通じてプログラムを実行し、結果を確認しなさい。

・ 基本課題4:「switch-case による条件分岐」

if-else とは異なる形式の条件分岐について練習します。

  1. ソースファイル SwitchTest1.java を作成しなさい。
  2. javac コマンドでコンパイルをしなさい。
  3. java コマンドを通じてプログラムを実行し、結果を確認しなさい。

・ 基本課題5:「switch-case による条件分岐(2)」

  1. 前の課題のプログラムの一部を修正し、 選択に用いられる変数の値を 'B' 以外の文字('A' または 'C' )に変えなさい
  2. コンパイルし直し、実行結果が変わることを確認しなさい
  3. 再度のプログラムの一部を修正し、 選択に用いられる変数の値を 'A' 、'B'、C' 以外の文字に変えなさい
  4. コンパイルし直し、実行結果が変わることを確認しなさい

・ 基本課題6:「switch-case による条件分岐(3)」

  1. ソースファイル SwitchTest2.java を作成しなさい。
  2. javac コマンドでコンパイルをしなさい。
  3. java コマンドを通じてプログラムを実行し、結果を確認しなさい。
  4. プログラムの一部を修正し、 選択に用いられる変数の値を 'B' 以外の文字('A' または 'C' )に変えなさい
  5. コンパイルし直し、実行結果が変わることを確認し、 break文の働きについて考えなさい

・ 基本課題7:「switch-case による条件分岐(4)」

  1. ソースファイル SwitchTest3.java を作成しなさい。
  2. javac コマンドでコンパイルをしなさい。
  3. java コマンドを通じてプログラムを実行し、結果を確認しなさい。
  4. プログラムの一部を修正し、 選択に用いられる変数の値を 'B' から 'b' に変えなさい
  5. コンパイルし直し、実行結果がどなるか確認しなさい。 なぜ、そのような結果になったか考えてみなさい

・ 基本課題8:「switch-case による条件分岐(5)」

  1. 上の課題を次のような条件で書き直してみなさい
  2. 文字が '0' から '9' までの数字の場合には、 "0123456789" というメッセージを表示しする
  3. 'A','a','B','b','C','c'と '0' から '9' までの数字以外の場合には、 "**********" というメッセージを表示しする
  4. プログラムの一部を修正し、 選択に用いられる変数の値をいろいろ変更し、 コンパイルし直し、実行結果がどなるか確認しなさい。

・ メールによるレポート課題: 以下の結果を tatsuo宛のメール で知らせてください。 件名(Subject)は java7

  1. 氏名と学籍番号
  2. 課題8のプログラムの内容(添付してもよい)

・ 応用課題1:「時刻に表示形式を変える」
課題1のプログラムを参考にして、dateコマンドと同じように現在の日時を 1行の情報にまとめて表示するプログラムを作成しなさい。 クラス名は DateCommand としなさい。
2004年6月16日10:30:24 のような形式とします。
さらに曜日の情報も表示できるように考えなさい。

・ 応用課題2:「if から switch への書き換え」
GoodMorning.java を switch-case の形式で書き直すとどうなるか試してみなさい。 (クラス名は GoodMorning2 として新しく作ってください)


実習の目次   今週の講義の内容