分支与循环

一、分支

(一)if 分支

1、if 单分支
在这里插入图片描述
2、if 多分支
在这里插入图片描述

if 分支的注意点

Question1:下列代码打印结果是什么??

结果是 hehe ?还是 haha ?

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

其实结果都不对,如下:
在这里插入图片描述

这是因为 else 会对应于离当前 else 语句最近的一个 if 语句来匹配,因此对应关系应该是这样的:
在这里插入图片描述

Question2:下列代码打印结果是什么??

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

Question3:下列代码打印结果又是什么??

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

其实对应上述三段代码,它们所表达的意思都是相同的,只是形式相对来说更加直观,便于理解。

又或者这样,结果又会怎样??

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

而这段代码,注意它的大括号的位置,因此对应的结果应该为:
在这里插入图片描述

由此可见,日常在编写代码时应注重代码格式的调整,从而便于自己测试检查,也方便他人理解自己的代码~~~~~~~~

Question4:对比下列代码:

int main()
{
	int mac = 1;
	if (mac == 0)
		printf("haha\n");
	printf("hehehehe\n");
	return 0;
}

int main()
{
	int mac = 1;
	if (mac == 0)
		printf("haha\n");
	else
		printf("hehehehe\n");
	return 0;
}

其实两段代码是完全相同的含义:
在这里插入图片描述

练习:打印 1-100 之间的奇数(大家可以自己先写写)

//下列为我个人比较喜欢的方式,仅供参考哦~
int main()
{
	int i = 1;
	while (i < 100) {
		if (i % 2 == 1)
			printf("%d ", i);  //是奇数
		++i;
	}
	return 0;
}

在这里插入图片描述

(二)switch 多分支

switch 语句使用方式:

switch(整型表达){    //switch 分支必须是整形表达式
	语句;
}

例如,判断星期:

int main()
{
	int day = 0;
	scanf("%d", &day);  //输入
	switch (day) {
	case 1:           //case 分支表达式必须是整型常量
		printf("星期一\n");
		break;    //结束当前分支
	case 2:
		printf("星期二\n");
		break;
	case 3:
		printf("星期三\n");
		break;
	case 4:
		printf("星期四\n");
		break;
	case 5:
		printf("星期五\n");
		break;
	case 6:
		printf("星期六\n");
		break;
	case 7:
		printf("星期天\n");
		break;
	default:
		break;
	}
	return 0;
}

在这里插入图片描述

如果简单的只需判断工作日和休息日,则可以使用如下方式:

int main()
{
	int day = 0;
	scanf("%d", &day);
	switch (day) {
	case 1:
	case 2:
	case 3:
	case 4:
	case 5:
		printf("工作日\n");
		break;
	case 6:
	case 7:
		printf("休息日\n");
		break;
	default:
		break;
	}
	return 0;
}

在这里插入图片描述

注意:
1、在每一个 case 分支结束之后应该都加上 break,才表示一个完整的分支语句结束。
2、default 语句表示除了所列表的 case 分支情况以外的默认选项,并在该 default 语句最后加上 break 。

二、循环

三种 :while\for\do…while

(一) while

在这里插入图片描述

while 循环中 continue 为结束当前循环:
在这里插入图片描述
while 循环中的 break ,表示永久终止循环:
在这里插入图片描述

(二)for

for 循环中有三个条件:for(;;)
其中第一个条件为初始值,第二个为条件判断,第三个为迭代变化,一般情况下第一个条件可以省略
在这里插入图片描述

省略第一个条件时:
在这里插入图片描述
for 循环中的 continue
在这里插入图片描述

for 循环中的 break

永久终止后续循环
在这里插入图片描述

(三) do…while

do…while 分支中首先执行最后判断
在这里插入图片描述

do…while 中的 continue

结束本次循环
在这里插入图片描述

do…while 中的 break

永久结束后续所有循环
在这里插入图片描述

Tips:
博客内容为原创,有任何问题都可以评论哦~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值