C语言学习#004
分支语句
C语言中非0的数字都是真
if语句
if
表达式 为 真 就执行下面的 语句
if (表达式)
{
语句
}
if else
如果 if 括号里的表达式为 真,就执行 if 下面的 语句
否则,如果 if 括号里的表达式为 假,就执行 else 下面的 语句
if (表达式)
{
语句
}
else
{
语句
}
else if
如果 if 括号里的 表达式1 为 真,就执行 if 下面的 语句
如果 if 括号里的 表达式1 为 假,然后 else if 括号里的 表达式2 为 真,就执行 else if 里面的 语句
如果 if 括号里的 表达式1 和 else if 括号里的 表达式2 两个表达式都为假, 则执行 else 下面的 语句
if (表达式)
{
语句
}
else if(表达式2)
{
语句
}
else
{
语句
}
switch
一般switch的使用
switch (表达式)
{
case 常量表达式1: 语句1
case 常量表达式2: 语句2
case 常量表达式n: 语句n
default: 语句 n + 1
}
switch的使用
#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;
}
利用 while 循环清空缓冲区,使 getchar() 不会拿错字符
#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;
}
do while
for
break
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
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;
}