第3回資料

C言語応用
プログラムの分かれ道
if文・その1
もしも・・・ならば~
 if文
if (式) 文 ;
文
式は非0
式の評価
何もしない
式は0
if文の流れ
Ex) if (a>b) printf(“aはbより大きい\n”);
式の値と評価
 評価
5
2
x + y
4
8
x < y
7
1
式は、原則としてその値を評価することができる。
参考プログラム
http://www.center.nitech.ac.jp/~sfukui/ouyou/list3-1.c
関係演算子と等価演算子
 関係演算子
<
>
<=
>=
左オペランドが右オペランドより小さければ1、そうでなければ0
左オペランドが右オペランドより大きければ1、そうでなければ0
左オペランドが右オペランド以下であれば1、そうでなければ0
左オペランドが右オペランド以上であれば1、そうでなければ0
 等価演算子
= = 左オペランドと右オペランドが等しければ1、そうでなければ0
! = 左オペランドと右オペランドが等しくなければ1、そうでなければ0
if文・その2
もしも・・・ならば~そうでなければ~
 if文その2
if (式) 文1 else 文 2 ;
式は非0
文1
式の評価
式は0
文2
if文の流れ
Ex) if (a>b) printf(“aはbより大きいです。\n”);
else printf(“aはb以下です。\n”);
複文
 文とは1つの命令文のことである
if文に続く文は1つの命令文である。
Ex) printf(), scanf(),・・・
 if文に続く文が1つではない場合は
複文を使う
{文;文;文;}
{}で囲うことで1つの文とみなすことができる。
多重分岐
 if文による多重分岐
if (a==0)
printf(“0です。\n”);
else
文1
文1
if (a==1)
printf(“1です。\n”);
文2
else
if (a==2)
文2
printf(“2です。\n”);
else
printf(“0,1,2以外です。\n”);
switch文
 switch文による多重分岐
switch (式) 文
switch (a) {
case 1 : 文1 ; 文2 ; break;
case 2 : 文3 ;
case 5 : 文4 ; break;
case 6 :
case 7 : 文5 ;
default : 文6 ;
}
aを評価
1の場合
2の場合
5の場合
6,7の場合
それ以外
文1
文2
文3
文4
文5
文6
キーワード
 キーワードとは
C言語では、if や else のような語句には、特別な意
味がある。このような語句のことをキーワードと呼び、
変数名などとして利用することはできない。
auto
do
goto
signed
unsigned
break
double
if
sizeof
void
case
else
int
static
volatile
char
enum
long
struct
while
const
extern
regist
switch
C言語のキーワード
continue
float
return
typedef
default
for
short
union
識別子
 識別子とは
プログラマが使う変数にも命名の規則がある。
変数名や関数名などの名前のことを識別子と呼ぶ。
○最初の文字は必ず英字であること。
ただし、ここでの英字とは、アルファベットだけでなく下線( _ )も含む。
○2文字目以降は英字でも数字でもよい。
○大文字と小文字は区別される。
演習
 List3-1.c および List3-2.c を実行して結果を確か
めよ。
 2つの整数a,bを読み込んで、bがaの約数であれ
ば「bはaの約数です。」と表示するプログラムを
作成せよ。
ヒント:bがaの約数であるとき、aをbで割った剰余は0となる。
 List3-3.cのプログラムをswitch文を用いて書き直
せ。