C言語学習 #004
分岐ステートメント
C 言語では、0 以外のすべての数値が true です。
if ステートメント
もしも
式がtrue場合、次のステートメント
if (表达式)
{
语句
}
そうでなければ
if括弧内の式が true の場合、ifの下のステートメントを実行します。
それ以外の場合、ifブラケット内の式が false の場合は、elseの下のステートメント実行します
if (表达式)
{
语句
}
else
{
语句
}
そうでなければ
ifブラケット内の式trueの場合、以下のステートメントを実行します
if括弧内の式がfalse場合、else if括弧内の式 2がtrue場合、else if内のステートメント実行します
ifブラケット内の式とelse ifブラケット内の式両方ともfalseの場合、elseの下のステートメントを実行します。
if (表达式)
{
语句
}
else if(表达式2)
{
语句
}
else
{
语句
}
スイッチ
一般的なスイッチの使用
switch (表达式)
{
case 常量表达式1: 语句1
case 常量表达式2: 语句2
case 常量表达式n: 语句n
default: 语句 n + 1
}
スイッチの使用
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int n = 1;
scanf("%d", &n);
// 判断输入的数字是多少
// 1 的话就输出 星期一
// 2 的话就输出 星期二
// 以此类推
// default 是指除了 case 的其他的数字(常量表达式)
switch (n)
{
case 1:
printf("星期一\n");
break;
case 2:
printf("星期二\n");
break;
case 3:
printf("星期三\n");
break;
case 4:
printf("星期四\n");
break;
case 5:
printf("星期五\n");
break;
case 6:
printf("星期六\n");
break;
case 7:
printf("星期日\n");
break;
default:
printf("只有星期 1 - 7\n");
break;
}
return 0;
}
ループ文
while ループ
while (表达式) // 满足条件就继续循环,直到条件不满足为止
{
语句; // 每次循环都会执行花括号内的语句
}
while ループの使用 (1 ~ 10 の数字を出力)
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
// while循环
int main()
{
int i = 1;
// i 小于或等于 10,则满足条件
while (i <= 10)
{
// 打印 i
printf("%d ", i);
// 每次执行循环的时候 i 都会加 1
i++;
}
return 0;
}
while ループの使用 (getchar および putchar)
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int ch = 0;
// getchar() 返回结果为 int 类型,是输入的字符的ACSII码值
// 每次循环都让玩家输入一个字符
// 如果不是文件结束符就继续循环
while ((ch = getchar()) != EOF)
{
// 将每次输入的字符打印出来
putchar(ch);
}
return 0;
}
getchar() が間違った文字を取得しないように、while ループを使用してバッファをクリアします。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
char ch[20] = {
0 };
printf("请输入密码: ");
scanf("%s", ch);
// 清空缓存区中的内容
int tmp = 0;
while ((tmp = getchar()) != '\n')
{
;
}
printf("请确认密码(Y/N): ");
int c = getchar();
if (c == 'Y' || c == 'y')
{
printf("确认成功\n");
}
else
{
printf("确认失败\n");
}
return 0;
}
一方を行います
ために
壊す
break はループ全体から飛び出すことができます
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
// break
int main()
{
int i = 1;
while (i <= 10)
{
// 当 i 等于 5 时, 跳出循环
if (i == 5)
{
break;
}
printf("%d ", i);
i++;
}
return 0;
}
続く
continue は現在のループをスキップできます
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
// continue
int main()
{
int i = 1;
while (i <= 10)
{
// 当 i 等于 5 时, 跳过本次循环,不再继续执行代码
// 则后面的 i++ 没有运行,所以这是死循环
if (i == 5)
{
continue;
}
printf("%d ", i);
i++;
}
return 0;
}
goto ステートメント
演習 1、年齢がどの段階にあるかを判断します (未成年、若者、中年、壮年、老年)
年齢を入力してください
判定条件:
1. 負の数であるかどうかを判断します(年齢は負の値にはなりません)
2. 年齢が 18 歳未満の場合は未成年を出力します
3. 年齢が 26 歳未満の場合は若年を出力します、
4. 年齢が 40 歳未満の場合は中年を出力
5. 年齢が 60 歳未満の場合は中年を出力
6. 年齢が 60 歳を超える場合は老年を出力
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
// 练习
// 输入一个年龄
// 判断要求:
// 1. 判断是否是负数(年龄不能为负)
// 2. 年龄小于18岁,打印未成年,
// 3. 年龄小于26岁,打印青年,
// 4. 年龄小于40岁,打印中年,
// 5. 年龄小于60岁,打印壮年,
// 6. 大于60,打印老年
int main()
{
// 声明保存年龄的变量
int age = 0;
printf("请输入一个年龄: ");
// 输入一个年龄
scanf("%d", &age);
// 判断
if (age < 0)
{
// 打印结果
printf("输入的年龄不能为负数\n");
}
else if (age < 18)
{
// 打印结果
printf("未成年\n");
}
else if (age < 26)
{
// 打印结果
printf("青年\n");
}
else if (age < 40)
{
// 打印结果
printf("中年\n");
}
else if (age < 60)
{
// 打印结果
printf("壮年\n");
}
else
{
// 打印结果
printf("老年\n");
}
return 0;
}
演習 2 ある数が奇数かどうかを判断する
数が奇数かどうかを調べる
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
// 打印 1 - 100 之间的 奇数
int main()
{
int number = 0;
printf("请输入一个数字判断是不是奇数: ");
scanf("%d", &number);
// 判断是不是被2整除,是的话就不是奇数,不是的话就是奇数
if (number % 2)
{
printf("\n%d是奇数\n", number);
}
else
{
printf("\n%d不是奇数\n", number);
}
return 0;
}