(7) 第3章 プログラムの流れの分岐(3)
3-2 switch文
- switch文を使うと、List3-17のようなif文を使ったプログラムを簡潔に書くことができる
List3-18
- 使い方: 式を評価して、caseに続けて書かれた値と一致するところにプログラムの流れを移す
switch (式) {
case 値 : 文; break;
case 値 : 文; break;
case 値 : 文; break;
}
- そのままでは次のcaseに書いてある文を実行してしまうので、break文をつけてswitch文を飛び出るようにする
switch文の働き
- List3-19
- break文が無いと無条件で次の文を実行する
- caseのみの場合は次の文を実行する
- defaultはどのcaseとも一致しないときに実行する
- 最後の条件にbreak文は必要ないが、見栄えを良くしたり、条件を追加することも考えてbreakは書くようにしてある
- if文の場合( )の中に書かれた式の値を評価して0か1かで分岐するが、switch文の場合(
)の中に書かれた式の値がcaseに書かれた値に対応して分岐する
- 一つの式の結果、複数の値に対応して分ける処理に向いているが、範囲を表すような場合には向いていない
課題7
次の動作をするプログラムを作る
- 複数の選択肢の中から1つの正解を選ぶクイズを作成する。正解、不正解、正しい番号を入れてください、と表示させる。
switch文を使う。問題は何でも良い。
例)
新潟国際情報大学が創立した年は?
1:1990年 2:1994年 3:1999年
解答を入力してください:3
不正解
- 生まれた西暦年を入力し、その年の十二支(じゅうにし)を出力するプログラムを作る。switch文を使うこと。
参考)
今年2011年は卯(う)年、来年2012年は辰(たつ)年
全部で12:子(ね)、丑(うし)、寅(とら)、卯(う)、辰(たつ)、巳(み)、午(うま)、未(ひつじ)、申(さる)、酉(とり)、戌(いぬ)、亥
(い)
例)
生まれた西暦年を入力:2011
卯(う)年です。
- 生年月日を入力し、占いを出力するプログラムを作る。計算式や占いの出力結果は自由。switch文を使うこと。
例1)
年+月+日を計算し、5で割った余りを求め、その値に応じたメッセージを出力(5種類)
例2) ソウルナンバー占い
年、月、日の各桁を足す。結果が1桁になるまで10の位と1の位を足す。出てきた数字(1〜9の9種類)に応じたメッセージを出力
注意
- 宛先は kawahara 件名は 1200xxxx
処理演習C1課題7
のように学籍番号、講義名、課題名を続けて書く
(数字や記号は半角で入力し、空白は入れない)
- メールの本文には、ソースプログラム、実行結果、感想・考察(必ず)を書く
- 課題は1つのメールにすべてを書く
- 時間内に、メールで送信する(時間内にできなかった人は出来たところまでを送信する)
次回予告
第4章 繰返しへ