6.C言語の制御構造(if文)
1)if(){..........}の構文
・if(){..........}のフローチャート
・if(){..........}の書式
if(条件式)
{
条件式が成立時に実行するプログラムを書きます。
}
条件式で使われる比較演算子、関係演算子
<比較演算子>
比較演算子 |
説明 |
a==b |
aとbは等しい |
a!=b |
aとbは等しくない |
a<b |
aはbより小さい |
a>b |
aはbより大きい |
a<=b |
aはb以下 |
a>=b |
aはb以上 |
<関係演算子>
関係演算子 |
説明 |
! |
条件のNOT「ではない」 |
&& |
条件と条件をAND(「かつ」) |
|| |
条件と条件のOR(「または」) |
<サンプル1>変数aの値が数値の10以上を調べる。
#include <stdio.h>
void main(void)
{
int a;
a=10;
if(a>=10)
{
printf("aは、10以上です。");
}
}
2)if(){..........}else{..........}の構文
・if(){..........}else{..........} のフローチャート
・if(){..........}else{..........}の書式
if(条件式){
条件式が成立時に実行するプログラムを書きます。
}
else
{
条件式が不成立時に実行するプログラムを書きます。
}
<サンプル2>変数aの値が数値の10以上、10未満を調べる。
#include <stdio.h>
void main(void)
{
int a;
a=9;
if(a>=10)
{
printf("aは、10以上です。");
}
else
{
printf("aは、10未満です。");
}
}
3)if(){..........}else if(){..........}の構文
・if(){..........}else if(){..........} のフローチャート
・if(){..........}else if(){..........}の書式
if(条件式1){
条件式1が成立時に実行するプログラムを書きます。(処理1)
}
else if(条件式2)
{
条件式1が不成立で条件式2が成立した時に実行するプログラムを書きます。(処理3)
}
|
|
|
else if(条件式n)
{
条件式1が不成立で条件式2が成立した時に実行するプログラムを書きます。(処理n)
}
else
{
すべての条件が不成立の場合に実行するプログラムを書きます。(処理n+1)
この条件で処理が不要な場合は、記述する必要はありません。
}
<サンプル3>授業時間数を100時間として、出席時間の入った変数aの値が80以上の場合は、
「OK」を出力し、80未満の場合は、「NO]と出力させる。
#include <stdio.h>
void main(void)
{
int a;
a=80;
if(a>=80)
{
printf("OK");
}
else if(a<80)
{
printf("NO");
}
}
<サンプル4>変数aの値が以下で示すように調べる。
aの値が0の時 ・・・ 「aの値は0です」と出力する
aの値が1より大きいに時 ・・・「aの値は1より大きい」出力させる
aの値が−1より小さい時 ・・・ 「aの値は−1より小さい」出力させる
#include <stdio.h>
void main(void)
{
int a;
a=9;
if(a==0)
{
printf("aの値は0です。");
}
else if(a>=1)
{
printf("aの値は1より大きい");
}
else
{
printf("aの値は−1より小さい");
}
}
<課題1>サンプル1〜サンプル4のプログラムで変数aをコンソール入力できるように変更しなさい。
4)範囲条件を作ってみる。
@変数aの値が1以上10以下の場合は、「範囲内」と出力し、範囲以外の場合は「範囲外」と出力させる。
#include <stdio.h>
void main(void)
{
int a;
a=10;
if(a>=1 && a<=10)
{
printf("範囲内");
}
else
{
printf("範囲外");
}
}
A変数aの値が10以上5以下の場合は、「範囲内」と出力し、範囲外の場合は「範囲外」と出力させる。
#include <stdio.h>
void main(void)
{
int a;
a=10;
if(a<=5 || a>=10)
{
printf("範囲内");
}
else
{
printf("範囲外");
}
}
<課題2>@の条件を1以上10未満に変更しなさい。
<課題3>Aの条件を10以上5未満に変更しなさい。
<課題4>変数aの値が5以上10以上の場合は、「範囲内」と出力し、範囲外の場合は「範囲外」と出力させる。
<課題5>@、A、課題3のプログラムで変数aをコンソール入力できるようにしなさい。
<課題6>成績が60点未満の場合は、「不可」と出力し、60点以上70点未満は、「可」と出力し、
70点以上80点未満は、「良」と出力し、80点以上100点以下は、「優」と出力するプログラムを
作りなさい。
5)if文の入れ子(ネスト)の構文
・if(){.....if(){..........}else{...........}.....}else{..........}のフローチャート
・if(){.....if(){..........}else{...........}.....}else{..........}の書式
if(条件式1)
{
条件式1が成立時に実行するプログラムを書きます。
if(条件式2)
{
条件式2が成立時に実行するプログラムを書きます。(処理2)
}
else
{
条件式2が不成立時に実行するプログラムを書きます。(処理3)
}
}
else
{
条件式1が成立時に実行するプログラムを書きます。(処理4)
この条件で処理が不要な場合は、記述する必要はありません。
}
<サンプル5>4)@を入れ子で書いてみる
#include <stdio.h>
void main(void)
{
int a;
a=10;
if(a>=1)
{
if(a<=10)
{
printf("範囲内");
}
else
{
printf("範囲外");
}
}
else
{
printf("範囲外");
}
}
<課題7>4)Aのプログラムを入れ子で書いてみてください。