C语言分支语句

众所周知,C语言作为一门结构化的程序设计语言,共支持顺序、选择与循环三种结构,而分支语句便属于其中的选择结构。分支语句主要有if语句和switch语句。接下来便对这两种分支语句作大致的解释与分析。

if语句

if

if语句的语法格式:

if (表达式)  
	语句

C语言中0为假,非0为真。表达式成立(结果为非0),表示为真,语句执行;表达式不成立(结果为0),则表示为假,语句不执行。
比如可以通过if判断输入的整数是否为偶数:

#include <stdio.h>

int main()
{
	int n = 0;
	scanf("%d", &n);
	if (n % 2 == 0)
		printf("%d为偶数!", n);
	return 0;
}

else

如果不是偶数,输入为奇数,此时可以使用else,清楚的表示输入的数的奇偶:

else
	printf("%d为奇数!", n")

而if与else都默认只能执行其后的一条语句,因此如果要同时执行多条,可以使用大括号将多条语句放到一起:

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

if语句嵌套

在 if…else… 语句中, else 可以与另⼀个 if 语句连⽤,构成多重判断。

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

通过if语句嵌套便可实现更为复杂的逻辑判断。

悬空if问题

若有多个if和else,此时应记住一个规则,else总是与其最接近的if匹配
例如:

#include <stdio.h>

int main()
{
 	int a = 0;
 	int b = 2;
 	if(a == 1) 	
 		if (b == 2)
 			printf("hehe\n");
 	else
 		printf("haha\n");	
	return 0;
}

此时上述代码什么都不会打印,可以将if语句看成这样:

	if(a == 1)
	{ 	
 		if (b == 2)
 			printf("hehe\n");
 		else
 			printf("haha\n");
 	}

若要解决这样的问题,按照所想的打印,可以这样修改:

#include <stdio.h>

int main()
{
 	int a = 0;
 	int b = 2;
 	if (a == 1)
 	{ 	
 		if (b == 2)
 			printf("hehe\n");
 	}
 	else
 		printf("haha\n");	
	return 0;
}

可见,在C语言中好的代码格式可以提高可读性

switch语句

switch

switch语句是一种特殊的if…else…语句,可以用于判断条件存在多个结果的情况。
基本语法格式为:

switch (整型表达式)
{
	case value1:
		语句1
		break;
	case value2:
		语句2
		break;
	default:
		语句3
		break;
}

switch语句中,根据整型表达式不同的值,执行相应value值的case分支,而value值必须是整型常量表达式

default

default分支则用于执行case中没有对应值的情况,可以根据需求进行添加与否。而default分支不一定要放到最后,可以根据实际需求放到特定位置。

break

因为switch语句中在不存在break的情况下会根据跳转的case执行接下来的所有语句:

int x = 2
switch (x)
{
	case 1:
		printf("hehe");
	case 2:
		printf("haha");
	case 3:
		printf("xixi")
}

此时上述代码会打印出:hahaxixi,所以根据情况使用break语句可以选定跳出switch语句。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值