分支语句和循环语句

·分支语句
1.if
2.switch
·循环语句
1.while
2.for
3.do while
·goto语句

1.什么是语句

C语言中由一个分号;隔开的就是一条语句。

2.分支语句(选择结构)

好好学习,找到好工作,
不好好学习,回家种地,
好好学习和不好好学习就是两种选择。

3.If语句

语法结构:
if(表达式1)
语句1;
else if(表达式2)
语句2;
else
语句3;
例子如下:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
	int main()
	{
		int age = 0;
		scanf("%d", &age);
		if (age < 18)
		{
			printf("未成年\n");
		}
		else
		{
			printf("成年\n");
		}
		return 0;	
	}

如果表达式的结果为真,则语句执行。
0表示假,非0表示真。如果语句有两条以上,需要用大括号括起来。

4.switch 语句

格式:
switch(整形表达式)
{
语句项;
}

#include<stdio.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");
		case 7:
			printf("星期日\n");
			break;
		}
		return 0;	
	}

在switch语句中,我们没法直接实现分支,搭配break使用才能实现真正的分支。
如上述代码,break语句实际效果是把语句列表划分为不同的部分。

default子句
如果表达式与所有的case 语句都不匹配
这是需要default 语句,他可以出现在case标签的任意一个位置,每个switch语句只能出现一条default语句。

5,循环语句

1.while 循环
当条件成立,if语句执行,但表达式语句只能执行一次,但我们需要同一件事很多次完成,这是需要while。
语法结构:
while(表达式)
循环语句;
2.for循环
语法:
for(表达式1;表达式2;表达式3)
循环语句;

表达式1为初始化部分,用于初始循环变量。表达式2为条件判断部分,判断循环啥时候结束。表达式3为调整部分,用于循环条件的调整。实则while 循环中也存在这三个部分,但由于风格问题使得三个部分很可能偏离较远,这样查找修改不够集中和方便,所以这时用for更为合理。

break和continue

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

在这里插入图片描述

#include<stdio.h>
	int main()
	{
		int i = 0;
		for (i = 1; i <= 10; i++)
		{
			if (i == 5)
				continue;
			printf("%d ", i);
		}
		return 0;	
	}

在这里插入图片描述
由上述可知,break就是停止后期所有的循环,直接从循环中跳出来
而continue是用于终止本次循环的,也就是本次循环中continue后面的代码不会执行,而是直接跳转到循环判断部分,准备下一次循环。
3.do…while()循环
语法:
do
循环语句;
while(表达式);

他的特点就是,不管他满不满足循环判断条件,他至少执行一次。

4.goto语句
C语言中提供了可以随意滥用的goto语句和标记跳转的标号,但一般我们不建议使用,这样可能会使我们的代码变得杂乱无章。

下面是一个猜数字游戏我们可以看看:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>

#include<stdlib.h>

#include<time.h>



void menu()

{

	printf("*********************\n");

	printf("**** 1.play *********\n");

	printf("**** 0.exit *********\n");

	printf("*********************\n");

}

void game()

{

	int input;

	int x = rand() % 100 + 1;//生成一个随机数,范围在1-100之间



	while (1)

	{

		printf("请输入数字:\n");

		scanf("%d", &input);

		if (input > x)

			printf("猜大了\n");

		else if (input < x)

			printf("猜小了\n");

		else

		{

			printf("猜中了\n");

			break;

		}

	}

}

int main()

{

	int input = 0;

	srand((unsigned)time(NULL));//时间戳,随着时间不断变化

	do

	{

		menu();

		printf("请选择:\n");

		scanf("%d", &input);

		switch (input)

		{

		case 1:

			game();

			break;

		case 0:

			break;

		default:

			printf("请重新输入\n");

			break;

		}

	} while (input);

	return 0;

}






	

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

lhj_loveFang_1105

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

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

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

打赏作者

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

抵扣说明:

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

余额充值