C プログラミング (C Programming)

[2017/09/26, H.Aman]
[← 演習のページへ戻る]

サンプルプログラム 2 の内容

二つの整数を読み込み,それらの差を表示する.
単純な引き算だとマイナスになるかもしれないので,その場合も考慮する.
 1:   #include <stdio.h>
 2:  	
 3:   int main(void){
 4: 	 int x, y;
 5:
 6:      printf("整数を二つ入力してください:");
 7:      scanf("%d %d", &x, &y);
 8:  
 9:      printf("両者の差は ");
10:      
11:      if ( x >= y ){
12:         printf("%d です\n", x-y);
13:      }
14:      else{
15:         printf("%d です\n", y-x);
16:      }
17:
18:      return 0;
19:   }

9 行目:printf("両者の差は ");

 7:      scanf("%d %d", &x, &y);
 8:  
 9:      printf("両者の差は ");
10:      
11:      if ( x >= y ){

この 9 行目で一気に
printf("両者の差は %d です\n", x-y);
と書いてしまっても良いのでは?と思ったかもしれません.

しかし,このままですと x < y の場合にマイナスの数字が出力されてしまいます.

よって,ここでは「両者の差は 」という前置きだけを出力するに留めておき,続きは if 文を使った場合分けに任せることにします.

11-16 行目:if ( x >= y ){ ... } else { ... }

 9:      printf("両者の差は ");
10:      
11:      if ( x >= y ){
12:         printf("%d です\n", x-y);
13:      }
14:      else{
15:         printf("%d です\n", y-x);
16:      }
17:

サンプルプログラム 1 で if 文の基本は説明しましたが, ここではその続きとして else{ ... } という部分(14-16行目)が登場します.

else という部分では, 条件が成立しなかった場合に実行したい内容 を指定します.
つまり,
   if ( 条件 ){

      条件成立した時に実行したい内容(※1)   

   }
   else{

      条件成立しない時に実行したい内容(※2) 

   }
という構造になっています.
結果として,※1 と※2 のどちらか一方は必ず実行されることになります.

このサンプルプログラムの場合,
  • x >= y という条件が成立した時: x-y を出力
  • x >= y という条件が成立しなかった時: y-x を出力
という場合分けを行っているわけです.