C语言 对分钟语句和循环语句的一些认识


前言

       这两天,我学了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;

}

        我这段代码真的是,循环来循环去,分支来分支去,脑子都要给我绕糊涂了,但还好,最后缝缝补补也是给我运行起来了。本来我还想加入数值的,但无奈,实力不允许,只能单纯的做个选择项的文本对话了。等我以后实力够了,我一定得给这段代码加上战斗系统。继续加油吧,编程人。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值