C语言分支(条件判断)
分支语句可以实现选择的效果(多选一)
1.if-else结构
1.1 if关键字可以用来编写分支,编写if分支之前最好先画一个表格,有可能同时出现的多个选择不可以包含在一个分支里。如果if分支里必须做出选择就可以省略最后一组语句的逻辑表达式和if关键字。
1.2 if分支里前面的语句先进行选择,选择不成功才轮到后面的语句进行选择,利用语句之间的前后顺序可以简化逻辑表达式。
1 /*
2 * if分支演示
3 * */
4 #include <stdio.h>
5 int main() {
6 int val = 0;
7 printf("请输入一个数字:");
8 scanf("%d", &val);
9 /*
10 * val >= 0 * 显示非负数的提示
11 ********************************
12 * val < 0 * 显示负数的提示
13 * */
14 if (val >= 0) {
15 printf("非负数\n");
16 }
17 else if (val < 0) {
18 printf("负数\n");
19 }
20 return 0;
21 }
1 /*
2 * if分支演示
3 * */
4 #include <stdio.h>
5 int main() {
6 int val = 0;
7 printf("请输入一个数字:");
8 scanf("%d", &val);
9 if (val < 0) {
10 printf("负数\n");
11 }
12 else if (val & 1) {
13 printf("奇数\n");
14 }
15 else if (!(val & 1)) {
16 printf("偶数\n");
17 }
18 return 0;
19 }
2.switch-case结构
2.1 switch…case关键字也可以用来编写分支,如果分支里每个选择都可以用一个唯一的
整数表示才可以采用这种格式编写。
2.2 每组语句最后都必须使用break;语句结束default关键字后面的语句用来处理所有
没有列举的数字。
/*
* switch...case分支演示
* */
#include <stdio.h>
int main() {
int season = 0;
printf("请输入一个数字:");
scanf("%d", &season);
switch (season) {
case 0:
printf("春天\n");
break;
case 1:
printf("夏天\n");
break;
case 2:
printf("秋天\n");
break;
case 3:
printf("冬天\n");
break;
default:
printf("不认识的数字\n");
break;
}
return 0;
}
3.练习
3.1 从键盘得到一个数,判断是0,正数,负数
1 /*
2 * if分支练习
3 * */
4 #include <stdio.h>
5 int main() {
6 int val = 0;
7 printf("请输入一个数字:");
8 scanf("%d", &val);
9 if (val > 0) {
10 printf("正数\n");
11 }
12 else if (val < 0) {
13 printf("负数\n");
14 }
15 else {
16 printf("零\n");
17 }
18 return 0;
19 }
3.2 从键盘得到两个数,并输出最小值
/*
* if分支练习
* */
#include <stdio.h>
int main() {
int val = 0, val1 = 0, val2 = 0;
printf("请输入三个数字:");
scanf("%d%d%d", &val, &val1, &val2);
/*if (val < val1 && val < val2) { //val比另外两个变量都小
printf("最小数字是%d\n", val);
}
else if (val1 < val && val1 < val2) { //val1比另外两个变量都小
printf("最小数字是%d\n", val1);
}
else {
printf("最小数字是%d\n", val2);
}*/
if (val1 > val) { //val1比较大应该被排除掉
if (val2 > val) { //val2比较大应该被排除掉
printf("最小数字是%d\n", val);
}
else {
printf("最小数字是%d\n", val2);
}
}
else {
if (val1 < val2) { //val2比较大应该被排除
printf("最小数字是%d\n", val1);
}
else {
printf("最小数字是%d\n", val2);
}
}
return 0;
}
3.3 输入一个数判断真假用switch结构
/*
* switch...case分支练习
* */
#include <stdio.h>
int main() {
int val = 0;
printf("请输入一个数字:");
scanf("%d", &val);
switch (val) {
case 0:
printf("假\n");
break;
default:
printf("真\n");
break;
}
return 0;
}