for 構文 命令の繰り返しを行う構文 cf. while 構文 for 構文は、 繰り返しを制御する、制御変数を、 一か所にまとめて記述する事ができる => (while に比較すると..) わかりやすい switch 構文 条件分岐を行う構文 cf. if 構文 switch 構文は、 (if 構文が二分岐であるのに対し) 多分岐である (if 構文が、一般的な条件で判断するのに対し) 一つの式の値で分岐を判断する !! if 構文に switch 構文の方が表現力が弱い !! if 構文にできて switch 構文にできない事がある !! # 逆はない !! => !! switch 構文の意義 !! 表現力の問題 ( 多分岐がまとめて書ける ) !! 「表現力の『弱さ』の代わり『効率がよく』なっている」 !! トレードオフ switch 構文内で利用される break 命令は、 その命令を実行した時点で、switch 構文を「抜ける」という意味 逆に、break 命令がないと、どんどん下に行って、命令を実行する break 文 それが含まれる直近(最内)の switch/繰り返し 構文を終了(抜ける) switch 構文の中の break は、switch 構文を抜ける while/for 構文も break を利用して抜ける事ができる !! if 構文の中で break を利用した場合は、 !! if 構文を含む、直近(最内)の switch/繰り返し 構文を抜ける !! (if 構文は、break に関して透過的) if 構文 条件分岐を行う基本構文 条件(成立/不成立:真/偽)に従って、二つの命令のどちらかを実行する => 二分岐が可能 <= 多分岐がしたい場合 - if 構文を組み合わせればよい - 条件式を利用する事できる 条件分岐 (if 構文) 条件分岐 (条件によって二つの命令の一方を実行) if 文 の構文 if (「条件」) { 「条件成立時の命令」 } else { 「条件不成立時の命令」 } # 原則 # 「{,}」を必ず書く # else 節を省略しない if 文 の意味 まず「条件(整数値になる)」をチェック ( 0 なら「偽(不成立)」、それ以外なら「真(成立)」 ) !! 「真」となるよにしたい場合は、「1」の値を使う事が多い 「条件」が真なら 「条件成立時の命令」を実行、 そうでなければ 「条件不成立時の命令」を実行 if 構文の色々なパターン else 節の省略 「条件不成立時の命令」がない時 # 「else {}」=> 省略してもよい 「 if (「条件」) { 「条件成立時の命令」 } 」だけで 「else 以下 ( else{} )」は省略 <新規> 「命令が一つ」の時 : # ブレース「{,}」を省略してもよい 「 if (「条件」)「条件成立時の命令」 」 だけで 「{」、「}」は不要 [本当の事] if 構文は 「if ( 条件 ) 命令 else 命令」 # 「命令」の所に「{ 命令列 }」を書いてもよい 注意 : 「{」、「}」の省略はお勧めできない !! 「{,}」を付けない方針の場合、 誤りのリスクが増大する 例: 命令があとから増えた時 当然、「{,}」*も* も追加する必要がある しかし、忘れがち if 構文は、組み合わせる ( ネストにする ) 事により、 任意の条件を判断する事が可能 「条件」の真実 「条件」は、「整数値をとる『条件式』」であり、 「0」という整数値の時に、『偽(不成立)』と扱い それ以外(「0」以外の整数値)の時には、『真(成立)』とみなす !! if 構文だけでなく for/while など、 !! 「条件」が現れる、すべての状況で、共通 複雑な条件式を作って、複雑な条件を一度に判定できるようになる