サイトマップ / C言語講座>出入り口>総目次>目次:流れの制御>if ( ) - else文(1)
[whileループ]←このソース→[if ( ) - else文(2)]
/* if - else文は、下記に示すような形をしています。
if ( 式1 ) { // 式1 が真なら 式2; // この { } の中を実行 式3; - - - - ; } else if ( 式4 ) { // 式1 が偽で 式4 が真なら 式5; // この { } の中を実行 式6; - - - - ; } else if ( 式7 ) { // 式1 式4 が偽で 式7 が真なら 式8; // この { } の中を実行 式9; - - - - ; } else { // 式1 式4 式7 が偽なら 式10; // この { } の中を実行 式11; - - - - ; }
{ }の中の文が1つならば、{ }は省略できます。
if (x > y) printf("x > y\n");
まず、if ( )の( )の式が評価されます。
「評価する」という言葉はこれから何度も出てきます。ここで一度に説明することは困難なので、簡単な説明に留めます。この場合は'x > y' を評価すると、真か偽になります。もし真なら評価した結果が0以外の値になります。偽なら0になります。「評価する」と値が返ってきます。
重要:真は0以外の値で、偽は0。
if ( )の( )の中が真なら次の行が実行されます。もし偽なら、実行されません。
'>'は関係演算子(Relational Operator)です。'>'の左辺が右辺より大ければ真になります。'>'の左辺が右辺より小さければ偽になります。
ソースプログラムの中に以下に示す2行があります。最初のif ( )が偽の時実行されます。
else if (x == y) printf ("x = y\n");
'=='も関係演算子です。両辺が等しければ真に、そうでなければ偽になります。ここでも真ならif ( )の次の行が実行されます。
重要:= は右辺の値を左辺に代入する代入演算子です。数学で使われる等号ではありません。
ソースコードの次の2行を下に示します。説明の必要はないでしょう。
else if (x < y) printf ("x < y\n");
次の2行は下に示すように少し形が違います。if ( )がありません。この文はそれまでのif ( )が全て偽であった時必ず実行されます。
else printf ( "???\n" );
*/
#include <stdio.h> void main(void); void main(void) { int x, y; printf("二つの整数をスペースで区切って入力して下さい\t"); scanf("%d%d", &x, &y); printf("\nx = %d y = %d\n", x, y); /* x と y の値を表示 */ if (x > y) /* もし x > y ならば */ printf("x > y\n"); /* ここを実行 */ else if (x == y) /* もし x = y ならば */ printf("x = y\n"); /* ここを実行 */ else if (x < y) /* もし x < y ならば */ printf("x < y\n"); /* ここを実行 */ else /* どれもあてはまらなければ */ printf("???\n"); /* ここを実行 */ } |
関係演算子は、この他にも <=、 >=、 != があります。<=, >= は、数学で使われているものと同じです。!= は、両辺が等しくなければ真に、そうでなければ偽になります。 */
[whileループ]←このソース→[if ( ) - else 文(2)]
/* (C) 2000- YFプロ. All Rights Reserved. */ 提供:C言語講座−それ自体コンパイルできる教材を使った講座です−