このドキュメントは http://icrus.org/c_language_beginers_course/ 上にあります.
1: #include <stdio.h>
2: void main(void){
3: int n;
4:
5: printf( "整数を入力して下さい:" );
6: scanf( "%d%*c" , &n );
7: if( n>10 ){
8: printf( "%dは10以上の整数です\n", n );
9: }else{
10: printf( "%dは10未満の整数です\n",n );
11: }
12: getchar();
13: }
例の1~12行をキ-ボ-ドから入力してコンパイル・実行すると,画面に「整数を入力して下さい:」と表示されます.そこで任意の整数をキーボードから入力し,リターンキーを押します.結果は次のようになります.
整数を入力して下さい:20 ⏎
20は10以上の整数です.
整数を入力して下さい:5 ⏎
5は10未満の整数です.
あなたの予想通り,条件式n>10が真なら(正しければ)if文の次のブロック(対になった{}で囲まれた部分)を実行します.条件式n>10が偽なら(誤りなら)else文の次のブロックが実行されます.if文,else文はつぎのような構成になります.
if(条件式){
条件式が真(正しい)とき実行するブロック
単文(1つの文)または複文(複数の文)で構成
}else{
条件式が偽(誤り)とき実行するブロック
単文(1つの文)または複文(複数の文)で構成
(esleとelse以降のブロックは不必要なら省略可)
}
if文,else文の構成
条件式には次のようなものがあります.
条件式の種類 | ||
---|---|---|
条件式 | 説明 | 比較演算子 |
(n<10) | nが10未満のとき真 | < |
(n<=10) | nが10以下のとき真 | <= |
(n>10) | nが10より大きいとき真 | > |
(n>=10) | nが10以上のとき真 | >= |
(n==10) | nが10と等しいとき真 | == |
(n!=10) | nが10以外のとき真 | != |
(0以外の値) | 常に真 | --- |
(0) | 常に偽 | --- |
ここまでくると,条件式を処理ブロックを変更することにより,様々な条件によって別々な処理をする事ができます.また,標準関数scanf()とprintf()により,コンピュータとの会話ができるようになりました.
1: #include <stdio.h>
2: #include <math.h>
3: void main(void){
4: double a, b, c, d, x1, x2, j;
5:
6: printf( "ax^2+bx+c=0のときa~cを入力して下さい\n");
7: printf( "a=" );
8: scanf( "%lf%*c" , &a );
9: printf( "b=" );
10: scanf( "%lf%*c" , &b );
11: printf( "c=" );
12: scanf( "%lf%*c" , &c );
13:
14: d = b*b - 4.0*a*c;
15: if( d>=0.0 ){
16: printf( "判定式dは0以上です.\n");
17: x1 = (-b + sqrt( d ))/(2.0*a);
18: x2 = (-b - sqrt( d ))/(2.0*a);
19: printf( "x1 = %lf\n", x1);
20: printf( "x2 = %lf\n", x2 );
21: }else{
22: printf( "判定式dは0未満です.\n" );
23: x1 = (-b)/(2.0*a);
24: j = sqrt( -d )/(2.0*a);
25: printf( "x1 = %lf+%lfj\n", x1, j );
26: printf( "x2 = %lf-%lfj\n", x1, j );
27: }
28: getchar();
29: }
実行結果は次のようになります.
if文の文法
if(条件式){
文1
}else{
文2
}
おつかれさまでした.以上,第3回はif・else文と条件演算子でした.
このドキュメントは http://icrus.org/c_language_beginers_course/ 上にあります.
2016,12
ssatoh@
足立工科大学 工学部 情報通信工学科