ファーストイヤー・セミナーⅡ 第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文で同じプログラムを作成してみよう
© Copyright 2024 ExpyDoc