2003/05/14 多重条件による分岐と IF の入れ子 単純な IF 文では、二種類の状態しか分岐できない 複数の状態を区別するには、IF 文の組み合わせを行う # 複雑な場合は、フォローチャートをかいて確認するとよい。 「IF 文の入れ子」と「else if 構文」の使い分け 同一の値に関して、複数の区間内のあるかどうかをチェックしたい else if を使う 異る値に関して、それぞれ別の条件をチェックしたい 入れ子を使う * 「else if 構文」は、入れ子の特殊な場合に、簡便化を行うための省略構文 「行」の概念に注意 [else if] ( end if は一つ、else の後に if ) if () then else if () then else if () then else end if [入れ子] ( end if は if の個数と同じ、else と if は別の行 ) if () then else if () then else if () then else end if end if end if 複合条件 条件として複数のものがかける 異る条件でも、同じ事をしたい場合に、便利な記法 同じことを何度もかかなくてよい 何をしたいかではなく、どの場合にしたいかを明示的に指定できる (単純な..) if 文を組合せれば ( 入れ子にする )、全てのことができる else if も 複合条件もいらない 特別な ( しかしながら、よく現れる ) 場合に関しては else if や、複合条件 の方が判り易く記述できる プログラムを判りやすく記述するために、特別な記述が追加された.. * そもそも else そのものが if の省略記号であることに注意 else を使う文 if ( 条件 ) then 文 1 else 文 2 end if は、else を使かわない文 if ( 条件 ) then 文 1 end if if ( .not. (条件) ) then 文 2 end if に等しい 論理演算子 ( .or., .and., .not. ) も優先順位があるが、 解りやすさを考えて、(無駄でも) カッコを補うことが望ましい == 比較演算子 「A と B が等しい」という条件は、「 A == B 」とかく == 場合分け どのような場合があるかを拾いあげ、全ての場合をチェックしよう 独立した条件はなにかを考える 従属した条件は、and を使えば、独立にできる (包含されている条件になる) 独立した条件の組み合わせが全体の組み合わせとなる 同じことを行う場合があったら、条件部を工夫して、より、シンプルにしよう 真偽表を作成し、漏れがないことを確認しよう。 日本語における条件 ( あいまい ) と、プログラムの条件 ( 厳密 ) の違いに注意 == 問題 6.3 1. X と Y が共に 80 点以上 -> A 2. 1. 以外で .. X と Y が共に 70 点以上 -> B 3. 1., 2. 以外で .. X と Y が共に 60 点以上 -> C 4. それ以外 -> 不合格 問題 6.4 プリントの穴を埋めるだけ. 問題 6.5 補欠の条件を次のように変更 「外国語が、70 点以上か、または、数学と理科が共に 70 点以上」 ^^^^