next up previous
Next: 関係演算子と論理演算子 Up: 制御文 Previous: if else による条件分岐

while による繰り返し

最後に繰り返し(ループ)と条件分岐を組合せて, 入力された整数の最大値を求めてみましょう. 今回は while 文を使用します. while 文は次のように使います.
while (条件式) {
  条件式が真ならここを実行
}
では次のプログラムを入力し, 実行してみて下さい.
/* Filename 3-6.c  */
#include <stdio.h>
#defile BUFFSIZE 1024
main()
{
  char    nyuuryoku[BUFFSIZE];  /* 入力文字列 */
  int     num;           /* 入力する整数の個数 */
  int     max;           /* それまでに入力された数の最大 */
  int     mm;            /* 入力された整数 */

  max = -2147483648;     /* 整数の最小値 -2^31 */

  printf("How many integers? >>");
  fgets(nyuuryoku, BUFFSIZE, stdin);
  sscanf(nyuuryoku, "%d", &num);  /* & を忘れずに */
  
  while (num > 0) {
    printf("Input an integer. >> ");
    fgets(nyuuryoku, BUFFSIZE, stdin);
    sscanf(nyuuryoku, "%d", &mm);  /* & を忘れずに */
    /* 新しく入力された数の方が大きいときは,
     * そちらを最大値として保存します     */
    if (max < mm) {
      max = mm;
    }
    num--;       /* num を一つ減らします(デクリメント)
  }
  printf("The maximum is  %d.\n", max);
}



Next: 関係演算子と論理演算子 Up: 制御文 Previous: if else による条件分岐