6.1 分支之 if-else

这篇来说一下C语言中的if-else

内容在书7.1,7.2章.

1.if

先来看看if的结构

if(表达式(1)) { 语句(2) }

如果表达式(1)为真,就执行语句(2),否则就不执行语句(2),而是继续执行下面的代码

(1) -为真-> (2)
int main(void) {
	int input;
	printf("请输入一个数字:\n");
	scanf("%d", &input);
	if(input > 10) {
		printf("你输入的数字大于10\n");
	}
	printf("你输入的数字是%d", input);
	return 0;
}

运行结果1,if的判断为false

请输入一个数字:
7
你输入的数字是7

运行结果2,if的判断为true

请输入一个数字:
11
你输入的数字大于10
你输入的数字是11

 

2.if-else

还是先来看看if-else的结构

if(表达式(1)) {
    语句(2)
} else {
    语句(3)
}

如果表达式(1)为真,就执行语句(2),否则就不执行语句(2),而是执行(3).与单个if相比,这种模式下无论真假都会执行且只执行一条分支.

(1) -为真-> (2)
 |
为假
 |
(3)
int main(void) {
	int input;
	printf("请输入一个数字:\n");
	scanf("%d", &input);
	if(input > 10) {
		printf("你输入的数字大于10\n");
	} else {
		printf("你输入的数字小于或等于10\n");
	}
	printf("你输入的数字是%d", input);
	return 0;
}

运行结果1,if判断为true

请输入一个数字:
19
你输入的数字大于10
你输入的数字是19

运行结果2,if判断为false

请输入一个数字:
9
你输入的数字小于或等于10
你输入的数字是9

 

3.if-else-if

跟前面两种相比,这种拥有更多的分支,意思就是有更多的可能性.

if(表达式(1)) {
    语句(2)
} else if(表达式(3)) {
    语句(4)
}...{
} else {
    语句(n)
}

 这种结构会一个接一个的判断表达式,直到有一个表达式为真.如果所有表达式都不为真,则执行else中的语句.

(1) -为真-> (2)
 |
为假 -> (3) -为真->(4)
         |  
        为假 
         |
     下一个else-if....
        ...
         |
       全部为假
         |
        (5)   

这种也是无论如何都会执行一条分支.

int main(void) {
	int input;
	printf("请输入一个数字:\n");
	scanf("%d", &input);
	if(input > 10) {
		printf("你输入的数字大于10\n");
	} else if(input == 10){
		printf("你输入的数字等于10\n");
	} else {
		printf("你输入的数字小于10\n");
	}
	printf("你输入的数字是%d", input);
	return 0;
}

如果大括号内只有一条语句,那么省略掉大括号也是可以的.

int main(void) {
	int input;
	printf("请输入一个数字:\n");
	scanf("%d", &input);
	
	if(input > 10)          printf("你输入的数字大于10\n");
	else if(input == 10)    printf("你输入的数字等于10\n");
	else                    printf("你输入的数字小于10\n");
	
	printf("你输入的数字是%d", input);
	return 0;
}

if和if-else同理. 

运行结果1:

请输入一个数字:
21
你输入的数字大于10
你输入的数字是21

运行结果2:

请输入一个数字:
10
你输入的数字等于10
你输入的数字是10

运行结果3:

请输入一个数字:
2
你输入的数字小于10
你输入的数字是2

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值