前言
这两天,我学了c语言中分支语句和循环语句部分的知识,对于C语言的认识和理解,也终于渐渐步入正轨了。分支与循环,使得程序有了无限种的可能,让程序不再呆板的只会执行一条命令,它能够对用户输入的信息进行接受,认知,并做出正确的行为。我觉得,正是有了分支与循环,C语言才使得计算机能够像人类一样,进行工作。
一、分支与循环是什么?
分支,你可以理解成一道给计算机做的选择题,而出题人正是我们程序员了。计算机通过预先设计的指令,对于接受的信息进行判断后,执行对应的代码,这就是分支语句。
循环,可以说是程序员派给计算机的一份工作,就和人们上班一样,日复一日的重复着一件事情,不断地循环往复。但它也不是单纯的重复命令而已,一般在循环中,会设定一个判断条件,当满足这个条件时,将会退出循环。
二、举栗子时间
(1)分支语句
分支语句主要是if语句和switch语句,在这里,我分别列出一段代码,来进行功能的展示,并说一说我的看法。
1.if语句
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int a = 0;
int b = 10;
scanf("%d", &a);
if (a > b)
{
printf("%d", a);
}
else if (a == b)
{
printf("%d %d", a, b);
}
else
{
printf("%d", b);
}
return 0;
}
在上面这段代码中,简单的展示了if语句的用法。if语句能够将数据进行对比,来进行判断该执行什么命令。其实if语句并没有什么重点,关键是在于,判定条件里,a == b,这里应该是“==”,因为“=”起到的是赋值的作用,所以在编程的时候,应该多加注意。
2.switch语句
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int a = 0;
scanf("%d", &a);
switch (a)
{
case 1:
printf("1\n");
break;
case 2:
printf("2\n");
case 3:
printf("3\n");
break;
default: //这个是用来设置,除上述之外,其余所有的数值的指令
printf("4\n");
break;
}
return 0;
}
switch语句,更像是我之前提到的,选择题,能够准确的对用户输入的数据,进行判定,然后进入对应的命令。其中,我觉得应该注意的,是“break",他是用来跳出语句的,如果不加break,那么程序将会在进行用户输入的命令之后,继续输出后面的命令,在上面的代码中,我将case 2的break空下来了,如果你用这段代码输入2时,输出的数据,将会是"2 3"两项。另外,case 1后面跟的是冒号:而非分号;。
(2)循环语句
循环语句相较于分支语句,就比较多了,有while循环,do while循环,for循环,但都万变不离其宗,都是以一个数据作为条件,进行判定,调整,来完成循环。和分支语句一样,我将举几个例子,然后分别说说我的认识。
1.while循环
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int a = 0; //初始数据
while (a < 10) //条件
{
printf("%d\n", a);
a++; //数据调整
}
return 0;
}
这就是一个最基础的while循环,简单的三个要素,初始数据,定义条件,然后数据调整。
2.do while循环
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int a = 1;
do
{
printf("%d\n", a);
a++;
} while (a < 1);
return 0;
}
do while循环其实和while循环很相似,但他将循环的条件放到了最后进行判断,这就可以保证进行一次循环。如上面的代码所示,a的初始赋值为1,已经不满足while循环的条件了,但因为条件判断放到了最后,所以,他依旧会进行一次循环后,才跳出循环。
3.for循环
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
for(int a = 0;a < 10;a++)
{
printf("%d\n", a);
}
return 0;
}
for循环,相较于前两个循环,他将三要素,更加直观的显示在代码上,能够很直接的就理解这个循环。在以后修改代码时候也会很方便,不需要跨多行去找需要修改的代码。
总结
以上就是我这段时间里,对分支语句和循环语句的一些认识和理解,当然,由于目前还是处于初学阶段,所以在这里也只是粗浅的介绍了一下。更加具体的,深入的内容,希望在日后的研究和学习中,我能够做出更好的介绍给大家,希望大家多多包容与点评。
私人时间
终于也是写完第二篇博客了,我本来以为我都快放弃了,还是得坚持哇。每次学到点新东西,总想这这段代码,咋给他塞到游戏里呢,在游戏里有啥用呢,忍不住总想试试,但编着编着,又容易把自己绕进去,要不就是卡死自己,想不到怎么往下编了。正所谓,巧妇难为无米之炊,更何况我还不是个巧妇,也就是个门外汉,只能是东补补西补补,塞到代码里,也能运行起来,效果嘛也勉勉强强能达到一点,但总感觉奇奇怪怪,哪不对劲。下面就是个人作品展示了。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int 老者任务1 = 0;
int 老者任务2 = 0;
int 找老者 = 0;
int choose = 0;//用来判定玩家决定
printf("你来到了一个村子,发现村头有一位老者正在翘首以盼。\n");
printf("你走上前去,老者急忙走了过来。\n");
printf("“勇者,你终于来了,我们村子饱受魔物的侵扰,希望你能解救我们村子。”\n");
printf("0.放心村长,我身为勇者,必将解救你们的村子。\n");
printf("1.你觉得是个麻烦,转身离开了\n");
do
{
scanf("%d", &choose);
switch (choose)
{
case 0:
printf("谢谢你,勇者。\n");
break;
case 1:
printf("你看到老者的模样,感到厌恶,转身就离开了。\n");
return 0;
break;
default:
printf("请输入正确的选择!\n");
break;
}
} while (choose);
while (老者任务1 != 3 || 老者任务2 != 3)//给玩家发布任务
{
if (老者任务1 == 0)
{
printf("1.在村子的北面,有一群猪头人,一直在破坏我们的庄稼,不少人都颗粒无收,希望你能帮我们铲除他们。\n");
}
else if (老者任务1 == 2)
{
printf("我已经消灭了破坏庄稼的猪头人了\n");
printf("谢谢你勇者,以后村民的庄稼,就有不错的收成了。\n");
老者任务1 = 3;
}
if (老者任务2 == 0)
{
printf("2.在村子的南面,有一群哥布林,时常袭击村民,不少人都不敢出村了。\n");
}
else if (老者任务2 == 2)
{
printf("我已经消灭了危害村民危险的哥布林了。\n");
printf("感谢你的付出,以后村民们就能安心的出村了\n");
老者任务2 = 3;
}
if (3 == 老者任务1, 3 == 老者任务2)
{
break;
}
scanf("%d", &choose);
switch (choose)
{
case 1:
printf("破坏庄稼,忍无可忍,村长你就放心交给我吧!\n");
老者任务1 = 1;
break;
case 2:
printf("什么,竟敢伤害村民,待我去除了他们!\n");
老者任务2 = 1;
break;
default:
printf("请输入正确的选择!\n");
break;
}
while ((0 != 老者任务1 || 0 != 老者任务2) && 0 == 找老者)//给玩家选项,让玩家选择下一部动作
{
printf("你走到了村口,望着两边。\n");
printf("1.走向北边的庄稼地。\n");
printf("2.走向南边的树林。\n");
printf("3.回去找村长。\n");
scanf("%d", &choose);
switch (choose)
{
case 1:
if (1 == 老者任务1)
{
printf("你远远的望去,看到猪头人正在破坏庄稼,你勃然大怒,冲上去灭了猪头人。\n");
老者任务1 = 2;
}
else if (0 == 老者任务1)
{
printf("你看到一片被毁坏的庄稼地。\n");
}
else if (3 == 老者任务1)
{
printf("猪头人被消灭了,庄稼能够茁壮生长。\n");
}
break;
case 2:
if (1 == 老者任务2)
{
printf("你小心谨慎的走在丛林中,撞见了哥布林正在欺负村民,你立马冲上前去,消灭了哥布林,救下了村民。\n");
老者任务2 = 2;
}
else if (0 == 老者任务2)
{
printf("你看到一片丛林,觉得有所危险,不宜接近。\n");
}
else if (3 == 老者任务2)
{
printf("没有了哥布林的威胁,村民们安心的走在丛林中。\n");
}
break;
default :
printf("请输入正确的选择!\n");
break;
}
if (3 == choose)
找老者 = 1;
}
printf("你回到了老者的面前。\n");
printf("老者看着你\n");
找老者 = 0;
}
printf("老者激动的握着勇者的手,对勇者所做的一切表示感谢。\n");
return 0;
}
我这段代码真的是,循环来循环去,分支来分支去,脑子都要给我绕糊涂了,但还好,最后缝缝补补也是给我运行起来了。本来我还想加入数值的,但无奈,实力不允许,只能单纯的做个选择项的文本对话了。等我以后实力够了,我一定得给这段代码加上战斗系统。继续加油吧,编程人。