守くんのC言語講座 第3回 「続・簡単なCプログラム」

今回は選択構造から。まずは例によって簡単なソ−スファイルを見てみよう。

/* 奇数偶数の判定 */
#include <stdio.h>
main(void)
{
int num;
printf("数値を入力してください。");
scanf("%d",$num);
if(num%2==0)
printf("偶数です。\n");
else
printf("奇数です。\n");
return(0);
}

●実行結果
数値を入力してください。(ex.100↓)
偶数です。↓

if()というのは、もしも・・・だったら(条件が真のとき)という意味である。elseは偽のとき。こういう細かいトコは、またあとで。num%2の%はnumを2で割った余りを求める、C言語だけの(ような気がする)演算子(たす、引くetc...)である。==は等しいことを表す。

この調子で、つぎは反復構造です。

/* *を10個表示 (for文) */
#include <stdio.h>
main(void)
{
int i;
for(i=0;i<10;i++)
printf("*");
return(0);
}

●実行結果
**********                               
for文は、反復構造を実現するためのもの。最初にi=0で変数iに0を格納。次にi<10を判定。真であれば次のprintf("*");を実行する。そして最後のi++(++をインクリメント演算子という)で変数iの中身が0から1に変化する。この処理をi<10であるあいだ反復するのだ。

いまのCソ−スファイルを別の表現で表してみよう。

/* *を10個表示(while文) */
main(void)
{
int i;
i=0;
while(i<10){
printf("*");
i++;
}
return(0);
}

while文の場合は、カッコの中にi<10の条件のみを書く。ということは、当然for文のときのi=0やi++はwhile文の前や中で書かなければならない。また、while文で実行する文が2文以上あるときは{}でくくらなければならない。これをブロック文という。これができるところがfor文との違いである。少々長くなったが、次回は始めとばしたデ−タ型をする。