条件判断
if文
if (条件式) 文 ;
等値演算子
==演算子は2つの値が等しい場合に真
ちなみに「=」は左の変数に代入
論理演算子
&&:かつ(AND) 右と左の条件が両方とも真→真
||:または(OR)右と左のどちらか片方が真→真
!:否(NOT) 条件が偽→真
else
条件が一致しなかったときに行う処理をかく
if(条件式)真の場合の処理;else 偽の場合の処理;
switch文
複数の番号との一致を判断する場合に限り簡単な書き方を用意
switch (条件式) {
case 数値:
実行文;
break;
case 数値:
実行文;
break;
}
case 数値のところをdefaultにかえると該当しない数字の際に動く処理を書ける
繰り返し文
for文を使う
int i;
for(i = 1; i <=繰り返し回数; i++){
繰り返す処理;
}
for文を止めたいとき
break文でループを終了させることができる
int main(void)
{
int i;
for (i = 1; i <= 10; i++) {
printf("%d\n", i);
if (i == 9) {
printf("ラスト1残して強制脱出");
break; /* ループを終了する */
}
}
return 0;
}
繰り返し回数がわからない繰り返し
ねずみ算の計算がある。こういったときにはWhile文を用いる。
while(条件式){
繰り返す文;
}
for文は初期値と交信が使えるので定数回ループが使える
ねずみ算をやってみる
「今月は1円、来月は2円、再来月は4円と、先月の倍額のおこずかいをちょうだい」さて、親が払う金額が100万円を超えるのは何ヶ月目でしょうか?
int main(void){
double money = 1;
int month = 1;
while(money > 1000000){
printf("%02d 月目 : %7.0f 円\n", month, money);
month++;
money*= 2;
}
printf("%02d月目に %7.0f円に到達し、100万円を超える\n",month,money);
return 0;
}
moneyをdoubleにする理由はint型では100万円を記憶できないためである。(本来intでよい)
do while 文
do{
繰り返し文;
}while(条件式);
基本的にwhile文と同じ。唯一違うことは必ず処理が一度走ること。
値がそもそもまちがっていたときwhileだと分からないがdo whileだとprintf関数でチェックできるという利点がある。