else if(条件式2)

ファーストイヤー・セミナーⅡ
第10回 if文による選択処理(2)
前回のレポート課題(1)

キーボードから整数を入力し、「偶数」か「奇数」を判定
if ~ else if 文を用いる
前回のレポート課題(2)

キーボードから整数を入力し、季節を判定
if ~ else if 文を用い、条件判定に
論理演算子の「OR」である「||」を使う
if文(復習)



プログラムの中で、ある条件にしたがって処理の手順を
変更したい場合に「if文」を使用することがある
if文では、ある「条件」を評価して処理の手順を変えたり、
処理を飛ばしたりするための制御文である
基本的な構成は「もし~なら・・・する」
if文の書式
if文による選択処理(復習)


if文の流れは以下のようになる
「式」の部分を評価して、成立する(真)なら文を実行、成
立しない(偽)なら文は実行されない
if~else if 文(復習)

「もし~なら○○、それ以外で~なら××、それ以外なら
△△」のように、複数の条件によって処理の中身を変え
たい場合、if~else if 文を使う(3つ以上の条件を並べる
ことも可能)
if~else if 文の流れ(復習)
if(条件式1){
文1;
文2;
}
else if(条件式2){
文3;
文4;
}
else if(条件式3){
文5;
}
else{
文6;
}
No
条件式1
Yes
処理
(文1文2の実行)
No
条件式2
Yes
処理
(文3文4の実行)
No
条件式3
Yes
処理
(文5の実行)
処理
(文6の実行)
練習

整数を2つ(a, b)入力し、a>b ならaとbの中身を入れ替えるプログラム
練習

入れ替え部分について
直接 b = a とすると b の中身が上書きされてしまうため、いったん別の
変数(tmp)に b の値を避難させておき、あとで a = tmp のようにする。
←一時避難
←bにaを代入
←避難していた b の値を a に代入
バブルソート(数値のならべかえ)

入力した複数の整数を小さいものから順に並べ替える
整数の入力
並べ替え
・2個ずつ比較
・大きいものを順に右へ
バブルソートの手順(i = 0)



1つ目と2つ目を比較し、大きいほうを右へ
2つ目と3つ目を比較し、大きいほうを右へ
最終的に「一番大きい数字」が一番右にくる
バブルソートの手順(i = 1)



すでに一番右に一番大きい値がきているので、残り(左側4つ)の中で一
番大きいものを右へ動かしていく
よって比較は x[0] から x[3]まででよい→ j のループは「 j < 4 – i 」まで
最終的に、2番目に大きい数値が右から2番目にくる
バブルソートの手順(つづき)


以上の手順を繰り返していくと、最終的に小さいものから順に並ぶように
なる
右4つに順に並んだ時点で並べ替えは終わっているから、i のループは4
回ですむ(i < 4)
switch~case文


if文と同様に条件分岐をおこなう書式としてswitch文がある
switch文ではある式または値を評価して「一致したものがあれば」case文
で書かれた内容を実行し、break文で脱出する
判定式
1つ目の条件と実行文
2つ目の条件と実行文
条件に一致しない場合の
実行文(default文)
switch ~ case文
switch(条件X){
case a:
文1;
break;
case b:
文2;
break;
default:
文3;
break;
}
条件X
X=a
文1
X=b
文2
default
文3
break
switch~case文の例

整数を入力し、3で割った余りを表示する
switch~case文の例(2)


二択クイズ
条件に合致しない場合にはdefault文が実行される
1,2以外が入力されたら
default文が実行される
第10回のレポート

以下のプログラムを作成し、いずれか1つを教員までメー
ルで送ってください
(1)バブルソートを用いて、入力した5つの整数を「大きいほ
うから順に(降順)」並べ替えるプログラム
(2)switch~case文を用いて、三択クイズを出題し回答させ
るプログラム(問題は各自自由に設定してよい)
※余裕のある人は if文で同じプログラムを作成してみよう