プログラム中で,「もし○○ならば,△△する」というような処理をしたい場合,
ifという命令を使う.また,「もし,○○ならば△△する,さもなければ□□する」
という場合は,
ifと
elseを使う.ここでは,この
ifや
elseの使い方
を示す.
最初は一番単純な,「もし○○ならば,△△する」という構文を示す(教科書p.112-113).
とくに,△△の部分が1つの文で表せる場合である.このような場合は,次のように,書
く.
条件を表す○○の部分が条件式で,△△の部分を文で表すのである.これは,「条件式が
正しい(真)ならば,文を実行する」となる.もし,条件式が誤り(偽)であれば,この文は
実行されず次の行に移る.図
1にこの構文のフローチャートを示す.
以下のようなプログラムが,この構文の使用例である.
if(a<=10) printf("aは,10以下です\n");
図 1:
条件式が真の場合,1つの処理を実施するif文
|
先ほどの構文では,実行できる文は1個に限られる.「もし○○ならば,△△し,□□し,
」のように複数の文を実行したい場合がある.このようなときは,次に示すよう
に,括弧
{ }でくくり,ブロック化して,複数の文を書く.これを複文(教科書
p.113-115)う.このブロック内には,さらに
if〜elseなどの制御文を書くこともできる.
|
書式
if(条件式){
文1;
文2;
文3;
}
|
これは,「条件式が正しい(真)ならば,文1と文2,文3を実行する」となる.もし,条件式が誤り
(偽)であれば,これら文は実行されず,ブロックの外側に出る.図
2にこの
構文のフローチャートを示す.
以下のプログラムが,この構文の使用例である.
if(0<=a && a<=10){
printf("aは,0以上\n");
printf("かつ\n");
printf("aは,10以下です\n");
}
-4pt
- もし,aが0以上,かつ,10以下ならば,
-4pt
- 「aは,0以上」と表示する.
- 「かつ」と表示する.
- 「aは,10以下です」と表示する.
図 2:
条件式が真の場合,ブロックで処理を実施するif文
|
「もし○○ならば△△し,さもなければ□□する」というように,条件により二者択一の
選択処理が必要な場合がある(教科書p.116-117).これは,次のように書く.
|
書式
if(条件式){
文1;
文2;
文3;
}else{
文4;
文5;
文6;
}
|
これは,「条件式が正しい(1:真)ならば,文1と文2,文3を実行する.さもなければ,文4と
文5,文6を実行する.」となる.実行される文が複数であるので,ブロックになっている
ことに注意.文が1つの場合,,
{と
}でくくり,ブロック化しなくても良い.
図
3にこの構文のフローチャートを示す.
以下のようなプログラムが,この構文の使用例である.
if(0<=a && a<=10){
printf("aは,0以上\n");
printf("かつ\n");
printf("aは,10以下です\n");
}else{
printf("aは,0未満\n");
printf("または\n");
printf("aは,10より大きい\n");
}
- もし,aが0以上,かつ,10以下ならば,
-4pt
- 「aは,0以上」と表示する.
- 「かつ」と表示する.
- 「aは,10以下です」と表示する.
- さもなければ
-4pt
- 「aは,0未満」と表示する.
- 「または」と表示する.
- 「aは,10より大きい」と表示する.
図 3:
elseを使って,二者択一の処理をする構文
|
ホームページ:
Yamamoto's laboratory著者:
山本昌志
Yamamoto Masashi
平成18年7月12日