前言:
继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的套件的。
最后,如果觉得小弟写得还可以,可以给小弟打赏一下吗?