分支语句和循环语句


一、分支结构(选择结构)

1.if语句

首先说一下if语句的语法结构,通过以下这个例子进行描述:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
	int x = 0;
	int y = 0;
	int z = 0;
	printf("请输入两个整数\n");
	scanf("%d %d", &x, &y);
	if (x > y)
		printf("%d\n", x);
	else
		printf("%d\n", y);
	    printf("%d\n", z);
}

运行结果:
在这里插入图片描述
在这里插入图片描述
发现这两种输入结果都会输出0,可以看出,如果if else无{},条件无论是否成立,都会执行这个任务。只有紧跟的那一句代码才是有效的。
编程过程中,最好不要省略{},要保持风格的统一。
这里给大家写一个标准:
#include<stdio.h>
int main()
{
if(表达式)
{
语句列表1;
}
else
{
语句列表2;
}
return 0;
}
假如我们把程序改为这样

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
	int x = 0;
	int y = 0;
	int z = 0;
	printf("请输入两个整数\n");
	scanf("%d %d", &x, &y);
	if (x > y);
		printf("%d\n", x);
}

运行结果为:
在这里插入图片描述
重点在于表达式后面加了一个“;”,我们会发现与panduanyuju并不相符,这是因为在C中,光有一个“;”表示空语句,“;”被当成了条件的内容,后面的{}变成了和条件无关的代码块,直接输出了。

2.switch语句

switch语句也是一种分支语句,常常用于多分支的情况。

#include<stdio.h>
#include<stdlib.h>
int main()
{
int day = 0;
	switch (day)
	{
	case 1:
		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;
	}
	return 0;
	system("pause");
}

在switch语句中,我们没法直接实现分支,搭配break使用才能实现真正的分支。他无法更进一步的表达更复杂的(与)。
switch注意事项:
1.使用break结束语句,忘记的话会导致多个分支相互影响。
2.switch这里变量只能是整数。
3.可用default表示默认分支选项,如果switch中变量值与case不匹配就执行。
4.可在case中,把多个case合并,用来表示简单的或逻辑。
5.switch可嵌套,但是丑,不建议。
结论:switch事项多,能不用尽量不用。
针对注意事项中的第四条,可以有以下示例来解释:

#include<stdio.h>
#include<stdlib.h>
int main()
{
int day = 0;
	switch (day)
	{
	case 1:
	case 2:
	case 3:
	case 4:
	case 5:
		printf("weekday\n");
		break;
	case 6:
	case 7:
		printf("weekend\n");
		break;
	}
	return 0;
	system("pause");
}

二、循环语句

1.while循环

while语法结构:
while(表达式)
循环语句;
当循环条件成立时执行循环体。但是有时我们设立的循环条件会使程序出现死循环,大多数死循环是没有用的,但有时候还是有必要的,比如服务器程序。
这里做出解释:
2个程序,通过网络通信,主动发起请求的一方是“客户端”,被动接受请求的一方是“服务器”,服务器需要7*24运行。
首先我们先运行一个简单的程序。(打印1—10十个数字)

#include<stdio.h>
#include<stdlib.h>
int main()
{
int i = 1;
	while (i <= 10)
	{
		printf("%d\n", i);
		i++;
	}
	return 0;
	system("pause");
}

while语句中的break和continue
1.break
将上面这个程序改动一下:

#include<stdio.h>
#include<stdlib.h>
int main()
{
int i = 0;
	while (i < 10)
	{
		i += 1;
		if (i==5)
		break;
		printf("%d\n", i);
	}
	return 0;
	system("pause");
}

运行结果为下图:
在这里插入图片描述
总结:break在while循环中的作用:
其实在循环中只要遇到break,就停止后期的所有的循环,直接终止循环。所以:while中的break是用于永久终止循环的。
2.continue
将上面程序中的break改为continue,会得到运行结果如下:
在这里插入图片描述
总结:continue在while循环中的作用就是:
continue适用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,而是直接跳转到while语句的判断部分。进行下一次循环的入口判断。先判定循环条件。

2.for循环

for循环和while本质上是等价的。
语法:
for(表达式1;表达式2;表达式3)
循环语句;
表达式1为初始化部分,用于初始化循环变量。
表达式2为条件判断语句,用于判断循环时候终止。
表达式3为调整部分,用于循环条件的调整。
示例:(打印1-10十个数字)

#include<stdio.h>
#include<stdlib.h>
int main()
{
int i = 0;
	for (i = 1;/*初始化*/ i <= 10;/*判断部分*/ i++/*调整部分*/)
	{
		printf("%d\n", i);
	}
	return 0;
	system("pause");
}

一些建议:
1.不可在for循环体内修改循环变量,防止for循环失去控制。
2.建议for语句de循环控制变量的取值采用“半开半闭区间”写法。
(编程领域中,大多数区间都采用前闭后开方式表示的,Linux shell采用前闭后闭)。

3、do…while()循环

do语句的语法:
do
循环语句;
while(表达式);
示例:(打印1-10十个数字)

#include<stdio.h>
#include<stdlib.h>
int main()
{
int i = 1;
	do
	{
		printf("%d\n", i);
		i++;
	} 	while (i <= 10);
	return 0;
	system("pause");
}

下面给大家分享一道笔试题:
请问程序要执行多少次?

#include<stdio.h>
#include<stdlib.h>
int main()
{
    int i = 0;
	int k = 0;
	for (i = 0, k = 0; k = 0; i++, k++)
		k++;
	return 0;
	system("pause");
}

for中的k=0是个赋值语句,所以表达式为0,0表示不成立,所以不执行.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dhdhdhdhg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值