C语言入门——三种基本结构

目录

一、顺序结构

二、分支结构

        条件语句:if-else

        分支语句:switch

三、循环结构

        循环语句:for

        循环语句:while

        转向语句:continue

        转向语句:break


一、顺序结构

        概念:按顺序一步步来

        我们按顺序结构写代码,代码运行的过程,也是从上往下一条语句一条语句的按顺序运行


二、分支结构

        概念:在一个岔路口,你需要选择走哪一条路

        条件语句:if-else

        以中文简单表示,下面不是代码的“代码”可以理解为:如果“我饿了”,那么就“吃饭”,否则就“睡觉”,也就是说,只要我不饿,不管多精神都得去睡觉,把这个问题比作岔路口,那么这里只有两条路,对应“吃饭”和“睡觉”,不走这条,肯定走另一条

if(我饿了)
{
    吃饭;
}
else
{
    睡觉;
}

        那么,定义一个变量,叫做HP,当HP为0时我要打印GG,其他情况就不打印GG,如下,这时就仅仅是判断一种情况,符合条件就GG,而不是站在岔路口进行选择,也就是说,if并不绑定else,if时可以单独拿出来用的,但else绑定if,使用时必然搭配着if

if(HP==0)
{
    printf("GG!");
}

        当岔路口不止两条时,一定不能说,我不走第一条,那就走另外两条,这样只是排除了一个选项,没有做出选择,这时需要使用else if的用法

        以每天吃饭睡觉打豆豆为例,按从上到下的顺序,先看我饿了没,我没饿,那么排除一个选项,再看我困不困,我不困,那么再排除一个选项,排除两项后只剩一条路,直接使用else就行

if(我饿了)
{
    吃饭;
}
else if(我不困)
{
    打豆豆;
}
else
{
    睡觉;
}

       在岔路口选择一条路进去后,又遇见了岔路口的情况也是有的,比如我一天不打豆豆不仅睡不着觉,还吃不下饭,那么我困了饿了我还得看我今天打豆豆没,才能做出选择,到底是去吃饭睡觉,还是打完豆豆再去吃饭睡觉,这种在if-else的括号内再次使用if-else自身的用法就叫嵌套

if(我饿了)
{
    if(今天打豆豆了)
    {
        吃饭;
    }
    else
    {
        打豆豆;
        吃饭;
    }
}
else if(我困了)
{
    if(今天打豆豆了)
    {
        睡觉;
    }
    else
    {
        打豆豆;
        睡觉;
    }
}
else
{
    学习;
}


        分支语句:switch

        同样以中文简单表示,先检查我的情况,符合下面case对应的情况(这里是冒号:)就做对应的事,做完后面还得跟一个break;表示我就做这一件事,如果我不饿不困也不累,那么其他情况,我就去搞学习,这里的break;可以删去,仅仅是格式好看

        但case后面的break;不能随便删去,若把我饿了的情况后面删去break;,那么当我饿了时,我会吃完饭就去睡觉,因为遇到了我困了的情况后面的break;

        若把所有break;删去,那么当我饿了时,我就会先吃饭睡觉再去打豆豆,最后搞学习,按顺序把所有事情都做一遍,因为我不会遇到break;,也就不会停止

switch(我的情况)
{
    case 饿了:吃饭;break;
    case 困了:睡觉;break;
    case 累了:打豆豆;break;
    default:搞学习;break;
}

        switch能做的事if-else都能做,一般也是使用if-else,但switch在处理多分支的情况下是比if-else强的


三、循环结构

        概念:你要上学,每天的日子都是学习、吃饭、睡觉在不断循环,哪天不上学了就脱离了循环

        循环语句:for

        按惯例以中文简单表示,下面的意思是,先声明我的年级是1,也就是一年级,然后判断我的年级是否小于等于6,也就是我小学六年读完了没,一开始很明显,一年级的我肯定是没读完的,所以我要去上一年学,然后才轮到“年级+=1”,也就是“年级”这个变量的值增加了1,再从判断我小学读完了没开始判断,这样一共会循环六次,也就是我要上完六年学,才能结束这种循环,去参加上升初考试

for(int 年级=1;年级<=6;年级+=1)
{
    上一年学;
}
参加小升初;

        所以,for循环的格式应该是“ for ( 初始化 ; 判断 ; 改变变量 ) ”,“初始化”也就是定义一个变量,在“判断”与“改变变量”里被使用以达到控制循环的效果

        初始化的声明变量是可以在for外声明,i从1开始,判断i是否小于10,每次判断i确实小于10就会打印“i的值,”,当i的值达到10时判断不通过,不会打印“10,”,所以得到下面的运行结果

#include<stdio.h>
int main()
{
	int i;
	for (i = 1; i < 10; i++)
	{
		printf("%d,",i);
	}
	return 0;
}
//运行结果:1,2,3,4,5,6,7,8,9,

        for也是可以嵌套的,嵌套一次for也就是双循环,一般也只使用双循环,少部分使用三循环,for和if-else时可以混合用的,但不助于理解基础知识,以后再解释


        循环语句:while

        while和for的区别在于,for的“初始化”需要在while外声明,“改变变量”需要在while内使用,下面的两组代码和for循环的两组代码意思一样

int 年级=1;
while(年级<=6)
{
    上一年学;
    年级+=1;
}
参加小升初;
#include<stdio.h>
int main()
{
	int i = 1;
	while (i < 10)
	{
		printf("%d,", i);
		i++;
	}
	return 0;
}
//运行结果:1,2,3,4,5,6,7,8,9,

        while还有do-while的用法,也就是先循环一遍,再判断是否继续循环

        格式为do{  }while(判断);

#include<stdio.h>
int main()
{
	int i = 1;
	do
	{
		printf("i=%d,", i);
		i++;
	} while (i < 10);
	return 0;
}
//运行结果:1,2,3,4,5,6,7,8,9,

        do-while起码循环一遍,如下,代码会先执行一遍,再判断i是否大于10,判断不通过,只执行判断前的那一遍循环,得到运行结果“1,”

#include<stdio.h>
int main()
{
	int i = 1;
	do
	{
		printf("i=%d,", i);
		i++;
	} while (i > 10);
	return 0;
}
//运行结果:1,


        转向语句:continue

       这次以上班为例,上班为大循环,上班需要你每天来工作,这一天天的工作就是小循环

        正常来说你就是每天上班下班在循环,但有一天,你可能生病了不舒服,可能有老朋友来了,总之你需要请一天假,在上班的大循环中你跳出来了一天,过了这天你又回到了上班的大循环里,这就是continue的作用:在大循环里给你请一天假,让你跳过一次小循环,过了这天还是该咋办咋办

        用下面的代码理解,当i等于5时,会先遇到continue,他给你请一天假,告诉你下面的输出语句你不用管了,你可以玩去了,但过了这村就没这店了,其他时候你还是得执行这句输出语句,于是最终的结果里只是没有了5

        但当你的输出语句在continue上面时,就会发现人家想给你放假,结果你已经把工作完成了的情况,相当于没放假,得到的结果里仍然有5,而这里就不提供代码了

#include<stdio.h>
int main()
{
	int i;
	for (i = 1; i < 10; i++)
	{	
		if (i == 5)
		{
			continue;
		}
		printf("%d,", i);
	}
	return 0;
}
//运行结果:1,2,3,4,6,7,8,9,


        转向语句:break

        你仍然在上班,本来上班等下班你循环的还行,但这天你刚来上班老板就告诉你,因为你今天左脚先进门,所以你被开除了,你可以去财务部领钱拜拜了,这下你直接没了工作,上班这个大循环都被打破了,这就是break的作用:直接开除你,让你离开大循环

        用下面的代码理解,当i等于5时,你看到了老板break,你还没开始工作break就告诉你可以不用来了,于是for的大循环戛然而止,得到结果为“1,2,3,4,”

#include<stdio.h>
int main()
{
	int i;
	for (i = 1; i < 10; i++)
	{	
		if (i == 5)
		{
			break;
		}
		printf("%d,", i);
	}
	return 0;
}
//运行结果:1,2,3,4,

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
C语言是古老而长青的编程语言,它具备了现代程序设计的基础要求,它的语法是很多其他编程语言的基础,在系统程序、嵌入式系统等领域依然是无可替代的编程语言,在各类编程语言排行榜上常年占据前两名的位置。 本课程是零基础的编程入门课,是后续的操作系统、编译原理、体系结构等课程的基石。 —— 课程团队 课程概述 程序设计是一门基础课程。对于计算机相关专业而言,程序设计是专业基础知识,是进一步学习其他专业知识的第一步阶梯;对于非计算机专业而言,程序设计的学习有助于理解计算机的能力所在,理解哪些是计算机擅长解决的问题,怎样的方式方法是计算机擅长的手段,从而能更好地利用计算机来解决本专业领域内的问题。 C语言是古老而长青的编程语言,它具备了现代程序设计的基础要求,它的语法是很多其他编程语言的基础,在系统程序、嵌入式系统等领域依然是无可替代的编程语言,在各类编程语言排行榜上常年占据前两名的位置。 对于非计算机专业的学生,学习本课程的主要目的是掌握程序设计的基本方法,C语言是教学媒介。但是对于计算机专业的学生,本课程是向后续的计算机组成、操作系统、编译原理、体系结构等课程前进的基石,对于C语言本身甚至程序设计语言基础原理的深入理解都是应该掌握的。 本课程是零基础的入门课程,完成本课程之后,就能具有初步的运用C语言编写程序的能力。要想完整的学习C语言,还需要进一步学习本课程的后续课程——《C语言程序设计进阶》。 程序设计是实践性很强的课程,该课程的学习有其自身的特点,听不会,也看不会,只能练会。你必须通过大量的编程训练,在实践中掌握编程知识,培养编程能力,并逐步理解和掌握程序设计的思想和方法。在这里所提供的,只是基础的知识讲解,要想学会编程,还需要更多时间的投入和努力。 为了学习编程,你需要有一台计算机,安装必要的编程软件。无论是MS Windows、Mac OS X还是Linux,都有适合C语言编程的软件。如果搞不定自己电脑上的编程软件,我们也会提供在网页中编写、运行C语言程序的方法。 课程大纲 01 程序设计与C语言 课时 1 计算机和编程语言 2 C语言 3 第一个程序 02 计算 课时 1 变量 2 数据类型 3 表达式 4 在线评判系统 03 判断与循环 课时 1 判断 2 循环 04 进一步的判断与循环 课时 1 逻辑类型和运算 2 级联和嵌套的判断 3 多路分支 4 循环的例子 5 判断和循环常见的错误 05 循环控制 课时 1 循环控制 2 多重循环 3 循环应用 06 数组与函数 课时 1 数组 2 函数的定义与使用 3 函数的参数和变量 4 二维数组 07 数组运算 课时 1 数组运算 2 搜索 3 排序初步 08 指针与字符串 课时 1 指针 2 字符类型 3 字符串 4 字符串计算 预备知识 作为第一门编程课,本课程可以零基础学习。大学计算机(大学计算机基础、计算思维导论)等课程对于理解本课程的部分内容有帮助,但这些课程的学习不是必须的。 证书要求 课程的总分达到60分以上,可以获得本课程的合格证书。 课程的总分达到85分以上,可以获得本课程的优秀证书。 参考资料 何钦铭、颜晖,《C语言程序设计(第3版)》,高等教育出版社,2015年,ISBN 978-7-04-043128-3 颜晖、张泳,《C语言程序设计实验与习题指导(第3版)》,高等教育出版社,2015年,ISBN 978-7-04-043563-4 常见问题 Q:我需要特殊版本的计算机吗? A:任何计算机都可以用于C语言编程,包括但不限于各个版本的MS Windows、各个版本的Mac OS X、各种发行版本的Linux。有的手机有app也能实现C语言编程,不过我们不推荐那么小的屏幕。 Q:我需要安装特定的软件才能做这门课的作业吗? A:任何C语言的开发工具都可以。课程演示会使用Dev C++及命令行环境,但是你使用任何其他开发工具都不会影响做作业的正确性。可以使用的其他工具包括但不限于MS Visual Studio、C-Free等。 Q:每周会发布多少时间的视频?我需要花多少时间来学习? A:我们按照90分钟的授课时间来设计课程。但是发布的视频肯定小于90分钟,一般在50到70分钟左右。因为在线下上课时,老师可能会回顾一下上周的内容、某些内容会看学生的反应重复几遍、会当堂问做一些提问,以及在各种软件等教学工具之间切换,这些都要花点时间,而这些在线上课程中都不存在了,所以视频的时间不会正好是90分钟。但是一般我们设计课程需要1:1.5到1:2的课后学习时间,这包括预习、作业、练习和复习的时间,所以每周大约需要花费三到五小时的时间。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值