Weitere ähnliche Inhalte
Ähnlich wie 8_C言語入門 - 条件分岐について(if-else if-else) (20)
8_C言語入門 - 条件分岐について(if-else if-else)
- 12. 条件によって実行② 11
入力するプログラム
#include <stdio.h>
int main(void)
{
int score;
printf("点数を入力してください >> ");
scanf("%d", &score);
if (80 <= score)
{
printf(“Sランクです。¥n”);
}
return 0;
}
ひとつのプログラムの中では
不等号の向きを統一すると可読性が上がる!
一般的に「<」や「<=」がよく使われる
scoreが80点以上の場合のみ
実行される
入力された値(score)が
80点以上かどうか?
- 13. if 文をつかう
• 「やさしいC」 p.119 – 124
• 基本的に “{ }” は省略しない!
• “ { } ” を省略しても良いときは、
のように1行で書くときだけ
12
「やさしいC」 p.119-124
if (80 <= score) printf(“Sランクです。¥n”);
- 16. else をつかう① 15
入力するプログラム
#include <stdio.h>
int main(void)
{
int score;
printf("点数を入力してください >> ");
scanf("%d", &score);
if (80 <= score) {
printf(“Sランクです。¥n”);
} else {
printf(“Aランクです。¥n”);
}
return 0;
}
scoreが80点以上 “以外” の場合に
実行される
≒ 80点未満の場合に実行される
- 19. 80点未満、60点以上① 18
入力するプログラム
#include <stdio.h>
int main(void)
{
int score;
printf(“点数を入力してください >> ”);
scanf("%d", &score);
if (80 <= score) {
printf("Sランクです。¥n");
} else {
if (60 <= score) {
printf("Aランクです。¥n");
} else {
printf("Bランクです。¥n");
}
}
return 0;
}
if 文は入れ子にできる
80点未満、60点以上のみ実行される
80点未満で、さらに60点未満のみ
実行される
- 22. else if をつかう① 21
入力するプログラム
#include <stdio.h>
int main(void)
{
int score;
printf(“点数を入力してください >> ”);
scanf("%d", &score);
if (80 <= score) {
printf("Sランクです。¥n");
} else if (60 <= score) {
printf("Aランクです。¥n");
} else {
printf("Bランクです。¥n");
}
return 0;
}
80点未満、60点以上の場合、
真(true)になる
複数条件ある場合は、else ifをつかう
- 33. 特別問題④
• 数当てゲーム
• 条件:
1. ある数字(1~50)と入力値が同じ場合は「正解」と表示
2. ある数字より入力値が小さい場合は、「もっと大きい」と表示
3. ある数字より入力値が大きい場合は、「もっと小さい」と表示
4. 5回以内に正解しないと、「残念」と表示
32
- 34. getchar で文字が取得できない場合 33
#include <stdio.h>
int main(void)
{
int number;
char character;
scanf("%d", &number);
fflush(stdin); // ← バッファのデータを吐き出す
character = getchar();
return 0;
}
scanfで入力したEnter(改行:n)を
バッファから吐き出す。
これをしないと、
getcharで文字を取得する前に、
「n」を取得してしまう
- 36. #include <stdio.h>
#include <stdlib.h> // ランダム値を生成するため
#include <time.h> // ランダム値を生成するため
int main(void)
{
int random;
srand(time(NULL)); // ランダム値生成のシード値を設定
random = rand(); // ランダム値の生成
return 0;
}
ランダム値を取得する場合 35
rand()を使うとランダム値を取得できる
※ srand(time(NULL)) を書かないと、
毎回同じ値になってしまうので注意