== 条件文 == === 流れ図 === プログラムは記述した順に実行されました。 次のようなプログラムがあったとします。 {{{ 文1 文2 文3 }}} ここでは、文1~3は代入文かprint文だと考えてください。 このプログラムを実行すると、文1~3はこの順に実行されます。 実行の順序を図で表すと次のようになります。 . {{attachment:jouken1.png}} 処理の流れ(実行順序)を表すための図を流れ図といいます。 ---- === 条件文の書き方 === いつも同じ処理をするだけでなく、場合によって処理内容を変えることができると、もっといろんなプログラムが書けます。 条件によって処理内容を変えるための、もっとも基本的な文が '''if文''' です。 if文の書き方は . {{attachment:jouken2.png}} です。 丸で囲まれたところはその通りに書きます。 条件のところには、数の比較などが書けます。 文のところには、代入文や print文などが書けます。 if文はしばしば数行を使って記述します。 例を示します。 {{{ if ( tate > 20 ) { wa = tate + 10; sa = tate - 30; } }}} 書き方と対応させて見ましょう。 丸で囲まれた部分に対応する''' if ( ) { } '''の位置を確認してください。 . '''条件'''に対応するのは tate > 20 だと分りますね。 . '''文'''に対応するのは wa=tate+10; と sa=tate-30; の2行です。 ---- === 条件文の実行 === if文の処理順序は次のようになります。 . (1) 条件が成り立つか判定する . (2) 条件が成り立っているときだけ、{ } で挟まれた文を実行する。 条件が成り立たないときは、(2)では何も行われないことになります。 このようなプログラムがあったとします。 {{{ 文1 文2 if ( 条件 ) { 文3 文4 } 文5 }}} このプログラムを流れ図であらわすと、次のようになります。 点線で囲んだ範囲が if文に対応する部分です。 . {{attachment:jouken3.png}} 処理順序は . (1) 文1が実行されます。 . (2) 文2が実行されます。 . (3) 条件が成り立つか判定されます。 . (4) 条件が成り立っているときだけ、文3、文4の順に実行されます。 . (5) 文5が実行されます。 です。 ---- === 条件 === 条件のところには、数値の比較などが記述できます。 他にも論理式を含め、いろいろな条件を記述できますが、この授業では2つの数値の比較のみを扱います。 数値とは、リテラルで表された数値、変数名が表す数値、それらを使った数式、関数などのことです。 2つの数値が、等しいか、等しくないか、大きいか、小さいかなどの比較ができます。 比較を表すには次の記号を使います。 ||記号||意味|| ||==||等しい|| ||!=||等しくない|| ||>||大きい|| ||>=||大きいか等しい|| ||<||小さい|| ||<=||小さいか等しい|| 等しいことの判定にはイクオール2つ、等しくないことの判定には!とイクオールです。注意してください。 ||例||意味|| ||maru == 12||maruの値が12と等しい|| ||hidari < migi||hidariがmigiより小さい|| ||x + y >= 30||x+yの値が30より大きいか等しい|| ---- === 書き方の例 === 条件が成り立つときだけ実行される部分を、右にずらして書いています。 このように揃えて分りやすく書きましょう。 {{{ if ( tate > 20 ) { wa = tate + 10; sa = tate - 30; } }}} print 文も使えます。 {{{ if ( tate == 20 ) { wa = tate + 10; print( '縦が20です' ); } }}} 条件が成り立つときだけ実行される部分が1文だけのときは、このように書くこともあります。 {{{ if ( tate <= 20 ) { wa = tate + 10; } }}} 条件が成り立つときだけ実行される部分が1文だけのときは、括弧を省略することもできます。今回は使いません。 {{{ if ( tate != 20 ) wa = tate + 10; }}}