プログラミング基礎講座(その3)
制御文について
プログラムは基本的に処理の手順を書いたもので、手順を記す最小単位を文(Statement)と言います。
文はプログラム言語によって、文末を示す文字が規定されています。
C言語、Java、PHPなどの場合は;(セミコロン)です。
プログラムは複数の文からなり、基本的に上から下に向かって実行されます。
しかし、上から下に向かって実行されるだけでは、複雑な処理を書くことが出来ず、またある条件によって処理を変えたりする場合対応できません。
そこで、ほとんどの言語では次のような制御文が用意されています。
1)if文
条件判定によって処理を変えることができます。
if(条件)
{
条件がtrueの時の処理するブロック。
}
else
{
条件がfalseの時に処理するブロック。
}
※ ブロック:C言語などの場合ブロック記号{}に囲まれた1文または複数の文の集まり。
例:
if(flag==1) // flagは1? ==は等しいかどうかを判定
{
data=1; // true(flagは1)
}
else
{
data=2; // false(flagは1でない)
}
2)for文
ブロック内の処理を繰り返し実行します。
C言語などの場合
for(初期値式;繰り返し条件;繰り返し処理を行う前の処理)
{
繰り返し処理をするブロック
}
例:
sum=0;
for(i=1;i<=10;i++)
{
sum+=i; // sumにiを加える
}
※ 1から10までを加算する処理。
初期値式 i=1; 初期値 iを1に設定
繰り返し条件式 i<=10; iが10以下なら繰り返す
繰り返し処理を行う前の処理 i++ 繰り返しを実行する前にiに1加える
3)while文
条件が満たされるまで処理を繰り返す。
C言語などの場合
while(条件式)
{
処理ブロック
}
例:
// data[] dataという要素数が50個の一次元配列があり、それぞれにランダムな 数値が入っているとする
flag=0;
count=0;
i=0;
while(flag==0)
{
count+=data[i];
if(count>1000)
{
flag=1;
}
i++;
if(i>=50)
{
break;
}
}
※上の処理例では配列の中身を順番に加算していき、合計が1000を超えたとき、 処理を抜け出すようになっている。
また、配列すべてを加算しても1000に達しないときは、break文で処理を中断
するようになっている。
4)switch文
評価した変数の値に従って処理を分ける場合に使用します。
switch(式)
{
case 定数1:
処理ブロック
break;
case 定数2:
処理ブロック
break;
・
・
・
・
default:
処理ブロック
}
C言語の場合 式及び定数はすべて整数値(int、short、charなど)
Javaなどの場合 式、定数にはint、short、char、byte、enum、Stringが使用できる
例:
switch(type)
{
case 0:
value=1;
break;
case 1:
value=10;
break;
case 2:
value=80;
break;
case 3:
value=150;
break;
default:
value=0;
break;
}
※ typeの値によってvalueにセットする値を変えます。
defaultはtypeの値が0~3以外の場合です。
5)break文、continue文
for,while文の処理中で処理の流れを変える場合に使用します。
break文は処理を中断し、処理ブロックから抜ける時に使用します。
continue文は処理を中断し、処理ブロックの先頭に戻ります。