サイトマップ / 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言語講座−それ自体コンパイルできる教材を使った講座です−