目录
这里提一句,在C语言里,0代表假,非0代表真,这和其他语言不大一样,比如java,有boolean类型,true为真,false为假
分支
分支,其实也就是选择,多种情况,多个分支
if语句
写法1
if (1==1) {
} else {
}
写法2
if (1==1) {
}
if (1==1) {
}
写法3
if (1==1) {
} else if (1>2) {
} else {
}
无论是哪种写法,格式其实都是一样的 if (表达式),如果表达式的结果是true,就执行代码块的代码,不然就不执行
写法4
#include <stdio.h>
int main() {
int price = 66;
if (price > 50) {
if (price > 60) {
if (price > 70) {
printf("讲真的,比70都多,太贵了!!!");
} else {
printf("还行,没超过70,70是我的底线");
}
}
}
return 0;
}
来个示例,为了演示各种情况
#include <stdio.h>
int main() {
int price = 99;
if (price > 100) {
printf("价格是 %d,贵了\n", price);
} else if (price > 30 && price <= 99) {
printf("价格是 %d,还能接受\n",price);
} else {
printf("价格是 %d,适合我,便宜~!\n", price);
}
return 0;
}
switch语句
switch也是一个分支语句,一般用于情况比较多,比较明确的情况,为什么有了if还要有switch呢? 你想想,如果你的条件很多,你去写很多if是不是很麻烦,而且也不好看
写一个简单的switch语句
#include <stdio.h>
int main() {
int today = 0;
scanf("%d", &today);
switch (today) {
case 1:
printf("周一");
break;
case 2:
printf("周二");
break;
case 3:
printf("周三");
break;
case 4:
printf("周四");
break;
case 5:
printf("周五");
break;
case 6:
printf("周六");
break;
case 7:
printf("周日");
break;
}
return 0;
}
注意!!!!! case之后必须有break,break代表着终止,意味着终止当前的switch,如果没有break,就会出现所谓的case穿透,case会一直执行,直到遇见break或者整个switch结束
我们来试一下不写case
#include <stdio.h>
int main() {
int today = 0;
scanf("%d", &today);
switch (today) {
case 1:
printf("周一");
// break;
case 2:
printf("周二");
// break;
case 3:
printf("周三");
// break;
case 4:
printf("周四");
// break;
case 5:
printf("周五");
// break;
case 6:
printf("周六");
// break;
case 7:
printf("周日");
// break;
}
return 0;
}
这就是case穿透,除了自己的case,它还走了别的可能性,穿透了case
当然,这个也看需求,比如你要求输入1-3,输出周一到周三,那我们就没必要在这几个case写break,直接让它穿透就OK,还是很灵活的
case决定了入口,而break决定了出口
switch必须是一个整形表达式,相应的,case必须是一个整形常量表达式,无论是表达式还是整形, 只要最后的结果是整形常量表达式就行
还有一种情况,是超出了case的处理范围,比如上面1-7,我不,我就输入100,那程序不就没法处理了?
试一下,看会发生什么现象
哎?什么都没发生,那这个怎么办呢?
其实switch也考虑到了这个情况, 所以有一个default,如果不满足别的case,就会走这个default
#include <stdio.h>
int main() {
int today = 0;
scanf("%d", &today);
switch (today) {
case 1:
printf("周一");
break;
case 2:
printf("周二");
break;
case 3:
printf("周三");
break;
case 4:
printf("周四");
break;
case 5:
printf("周五");
break;
case 6:
printf("周六");
break;
case 7:
printf("周日");
break;
default:
printf("你输错了铁子.... 来,重新来");
break;
}
return 0;
}
这里提一句,在C语言里,0代表假,非0代表真,这和其他语言不大一样,比如java,有boolean类型,true为真,false为假
#include <stdio.h>
int main() {
if (1) {
printf("这个是真");
}
return 0;
}