3.判断语句
基础
我们利用if语句进行判断
if语句的标准写法:
if(条件成立){
...
}
判断条件:
== 相等
!=不相等
> 大于
>= 大于或等于
<小于
<= 小于或等于
注意,在C里面,判断的结果并不是布尔值(true,false),而是1和0
我们使用else语句,表示除了if条件之外的情况,所做的操作
代码实例:
#include <stdio.h>
int main()
{
int price=0;
int bill =0;
printf("请输入金额 ");
scanf("%d",&price);
printf("请输入票面 ");
scanf("%d",&bill);
if(bill>=price) //注意了,if和else的分号;不写在小括号后面,因为这不是他们真正“结束”的地方
{
printf("应该找您: %d \n", bill-price);
}
/*当判断运算符输出不为0时,会执行大括号内的语句,否则执行else语句。
if+else判断完之后,之后的语句照常进行 */
else {
printf("你的钱不够 \n");
}
printf("执行结束");
; return 0 ;
}
if和else有另外一种不用大括号的写法,本人不是很喜欢也不是很推荐
if(hours>STANDARD)
pay=STANDARD*RATE+(hours-STANDARD)*(RATE*1.5);
else
pay=hours*RATE;
嵌套
不管是if语句还是if-else语句,我们都可以进行嵌套
什么是嵌套呢,见到来说就是一个套一个的套娃
#include <stdio.h>
int main()
{
int a,b,c;
printf("请输入三个数字") ;
scanf("%d %d %d",&a,&b,&c) ;
int max=0;
//当if的条件满足或不满足时,执行的语句可以是一条if或者一套if-else语句,这就是嵌套的if语句
if(a>b) {
if(a>c){
max=a;
}
else {
max=c;
}
}
else{
if(b>c){
max=b;
}
else{
max=c;
}
}
// !!! 简洁版的else总是和最近的if相匹配!而完整版的(有大括号)是根据大括号的划分的范围匹配的!
//(可能是废话)缩进格式并不能暗示else的匹配,起码C里面是这样的
//另外也可以用简要版的ifelse写,简洁但是有风险
printf("The max is %d \n",max);
; return 0 ;
}
级联
if 后的else语句可以直接再接if语句,就是else if语句
#include <stdio.h>
int main(void)
{
int x ;
int f = 0;
scanf("%d",&x);
if(x<0) {
f = -1;
}else if (x==0){
f = 0;
}else if (x>5){
f=2*x;
}else {
f=3*x;
}
printf("%d",f)
;return 0 ;
}
switch case 多路分支
可以使用swtich case 来减少一些if else的工作量
这里的工作量指的是你复制粘贴的工作量
switch( type ){
...
}
type表示的是当前判断的变量的值
case 常量 : (常量可以是常数,也可以是只含常数运算的表达式)
语句......(一般以break结尾)
break;
利用case来对各种情况进行分析
多说无益,还是直接上代码更明白
#include <stdio.h>
int main (void){
int type;
scanf("%d",&type);
switch( type ){
//根据switch(控制表达式子),控制表达式只能是整数型的结果!
//括号中的值判定接下来的语句,括号中可以是变量,可以是式子。都不符合就输出default。
case 1:
printf("这是case 1");
break ;
case 2:
printf("这是case 2");
break ;
case 3:
printf("这是case 3");
//break ; 注意这个break被注释删掉了,case=3时会执行3然后到执行case4后停止!
case 4:
printf("这是case 4");
break ;
default:
printf("阿这,这不是case1234");
//最后以default结尾来对应其他情况。
}
;return 0 ;
}
case只是一个路标,并不会自动停止。甚至会运行到下一条case里面去执行句子(按排序的顺序)
这个动作会直到遇到一个break或者到达switch结束,才会停止下来。
题外话
我们回过头来写这份MD时,只觉得我之前的代码简直是乱七八糟