C(十三)for、while、do - while循环的抉择 --- 打怪闯关情景

前言:

C(十)for循环 --- 黑神话情景之后👉

https://blog.csdn.net/2401_87025655/article/details/142684637

今天,杰哥想用一个打怪闯关的场景让与大家一起初步认识一下for、while、do - while循环的抉择。(本人自己也是在不断学习,加深认知,如果不对之处,敬请指出。)

目录:

0、唠嗑 

1、场景一

2、场景二

3、场景三

4、有趣的问题

5、不懂就问---求助

 0、唠嗑

 人生无常,大肠包小肠。~~~emmm

虽然我们身边有一些事情是确定的,比如:篮子里有10个苹果,一天只能从篮子里拿走一个,第 i 天还剩多少个(i <= 10),

然而,生活往往是不确定,带有各种附加条件以及随机性等等······ 

1、场景一

场景一:(扫清障碍)要打10个怪物,每打一个积攒一点法力值,输出每打一个后的法力值 

本题需要用到循环且循环次数确定 --- for循环、while循环都可以。

(个人观点:我对循环次数确定的比较喜欢用for循环)

for 循环示例如下 :👉

#define _CRT_SECURE_NO_WARNINGS 1

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

2、场景二 

场景二:密码之门

————你输对密码前,你能知道你要用多少次才能输对吗?

————密码是1~9之间某个数(包括1,9)---假设密码是6

所以,循环的次数 是不确定的。--- 比较建议选 while

(但也不是说不能用for循环,后面有for循环代码示例)

代码示例1(while死循环的构建 + 条件判断):👉

#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>
int main()
{
	while (1) //1 表示真 --- 死循环
	{
		int input = 0;
		scanf("%d", &input);
		if (input == 6)
		{
			printf("开门\n");
			break;
		}
	}
	return 0;
}

代码示例2(for死循环构建+条件判断): 👉

#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>
int main()
{
	for (;;)
	{
		int input = 0;
		scanf("%d", &input);
		if (input == 6)
		{
			printf("开门\n");
			break;
		}
	}
	return 0;
}

代码示例3:👉(用到scanf的返回值)

#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>
int main()
{
	int input = 0;
	while (scanf("%d", &input) == 1)
	{
		if (input == 6)
		{
			printf("开门\n");
			break;
		}
	}
	return 0;
}

tip:关于scanf的返回值详见👉

https://blog.csdn.net/2401_87025655/article/details/142590751

3、场景三 

场景三:每打一个怪,获得一次开密码门的机会 

要先执行 --- 可以用do - while循环,代码示例👉

#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>
int main()
{
	int n = 0; // n --- 打怪个数
	int input = 0;// input --- 所猜密码
	do
	{
		n++;
		printf("打了第%d个怪,猜密码:>\n", n);
		input = 0;
		scanf("%d", &input);
	} 
	while (input != 6);
	if (input == 6)
	{
		printf("开门\n");
	}
	return 0;
}

运行结果👉

打了第1个怪,猜密码:>
3
打了第2个怪,猜密码:>
9
打了第3个怪,猜密码:>
5
打了第4个怪,猜密码:>
6
开门

 4、有趣的问题

树上有十只鸟,开枪打死一只后,树上还有多少只? 

 5、不懂就问---求助

各位大佬,请问有没有比较好的学习嵌入式的方式推荐(比如看什么视频,用什么软件······)?本人目前是有stm32的套件的。 

最后,如果觉得小弟写得还可以,可以给小弟打赏一下吗?

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Gdut杰哥

小弟本科在读,可以给点早餐钱吗

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

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

打赏作者

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

抵扣说明:

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

余额充值