目录
1. 顺序结构
1.1介绍顺序结构
2. 分支结构
2.1 分支结构的介绍与实现逻辑
2.2 if 语句实现分支
2.3 switch case语句
2.4两者的区别
3. 循环结构
3.1 介绍循环结构的介绍与实现逻辑
3.2 while语句
3.3 for语句
3.4 do.....while 语句
3.5 break以及continue的介绍
3.6 三种循环的区别
总结:
我们在日常生活中观察不难发现 ,人们所做的事情总是要遵循顺序,选择以及循环这三种结构的。
而c语言等高级语言存在的目的就是为了使用计算机解决人民生活中的问题,所以c语言结构中也有这与之对应的三大逻辑结构。故称之为顺序结构,分支结构,循环结构。
好了,话不多说,
系好安全带 发车了 !!!
顺序结果顾名思义顺序,顺序,顺序,一切按照顺序来,一步一步往下运行。
是c语言中最简单的逻辑结构。
运行代码
代码会依次运行 先打印 hello,然后打印 haha ,然后打印 xixi 按照从上往下的顺序运行代码。
所谓分支就是给了我们多个选择,而我们根据自身的条件去选择特定的选项。
在现实生活中假如 我们要完成两件事情,称之为事件A,事件B,完成事件A需要1个小时,完成事件B需要半个小时,
而我们目前只有40分钟的空闲事件 ,所以按照条件我们只能完成事件B。
运行逻辑图片
if(条件) 在代码块中可以看成是如果的意思 属于判定条件的语句 ,一般与else(否则的意思)连用,
说不多说上代码
假如 我们学c语言 敲0-5000行代码为 “入门级”,5000-10000行代码为“中等级”,10000-20000为“优秀级”,20000以上为大师级,可以获得一个好offer。定义为a表示我们的敲的代码行数,现在我们输入一个数表示为我们的敲的代码行数
当我们分别输入为15000和20001时得到:
if 后面的括号里是我们的条件表达式 ,用于判定分支走向。当条件表达式为真时,执行对应if 下面的语句,当所有的条件表达式都为假时则
执行 else 下面的语句。
else if 用于有三个或者三个以上分支时使用else if 来创建多个分支 。
注:if 与else 后面默认包含一条语句 如果有两条或两条以上语句时要用大括号 包含起来
表达式为 switch( ) 括号里面只能为整形常量表达式,(可理解为确定入口)
{
case :1 当括号里面为1时,则执行case: 1下面的语句
语句1;
case :2 当括号里面为2时,则执行case :2下面的语句
语句2;
}
注:如果不加break 跳出switch 那么会从入口一直往下运行,直到遇到break或者switch语句结束
看代码
输入a的值为1,则满足“case 1:”入口,会打印星期一,但由于case 1:下面没break跳出switch,所以也打印case 2:下面的星期二,直到遇到了case 2:下面的break才跳出switch语句 不再向下执行。 注:所以如果在switch语句中执行完条件语句之后不想往下执行则需要break语句来跳出,如果需要继续向下执行 则不加break继续向下执行 如果下面入口没有满足条件的 则会进入default: 下面的语句 注:dafault可以在switch中的任意位置,不局限于最末尾,且在switch语句中看需求用default,不是必须
笔者认为两者在使用过程中,if 语句使用较多 可满足大多数的分支结构 ,但当分支过多时且多入口执行相同语句时用switch语句更为方便。其实还是要看具体情况使用,再适合的场景使用能事半功倍
在日常生活中有大量的事情需要我们重复去做,而在c语言中也有这样的逻辑结构——循环结构,
循环结构指在条件范围内重复执行循环体里面的语句,直到条件不满足时停止循环。
结构图
例: 假使 你现在是个程序员小白,才开始敲代码,当你敲到超过20000行代码的时候你就能拿到一个好offer,当小于20000时则回去敲一行代码修炼 直到超过20000行。
直接上代码
while()里面时循环条件,当满足括号里面的条件时就一直循环运行,直到不满足条件。 看左边例子:循环条件是line<=20000,刚开始你是小白,代码行数line=0,然后line小于20000 进入循环体,然后打印“敲一行代码”,line++(line每一次加1),然后line=1了,接着又回到了 while语句的的循环判定条件那里判断line是否<=20000,然后又向下运行,每次运行line都会加1,直到line>20000,最后打印 一个好offer。
其实for循环和while循环实现起来大致差别不大都是根据其中条件来循环,直到条件为假 ,结束循环。
结构
for( 表达式1;表达式2;表达式3) 表达式1 为初始赋值,简单来说就是从哪个 数开始循环
{ 表达式2 为判定条件,为真则运行循环体, 为假则跳出循环
循环体语句; 表达式3 为调整作为判断条件的数据的表
} 达式
上代码!
那上面相同的例子:
表达式1 为循环起始值i=0,表达式2为循环判定条件i<=20000, 表达式3为 条件数据的调整
开始i=0,判定表达式2中的条件,结果为真,进入下面大括号中的循环体,然后打印 敲一行代码 与line的值 ,然后回到表达式3调整条件数据 所以i从0变成了1,然后回到表达式2继续判定条件 发现i=1是也满足条件,接着又进入循环体打印 敲一行代码与line的值 然后又回到表达式3 调整条件数据。依次循环直到line加到20001时,不满足表达式2中的条件后 结束for循环。
顺序: 表达式1——表达式2——循环体——表达式3——表达式2——循环体——表达式3.....
这个语句与上面两个语句运行逻辑上有些不同 它是先 运行循环体 然后再判定条件 判断是否要循环,而for和while是先判定条件 然后再执行循环体;
结构
do 直接运行循环体,然后再判定条件
{ 也就是说do.....while语句至少都会执行一次
循环体 循环体里面的语句
}while(条件表达式)
本来a=0的,把a当作条件,条件为假 ,结果还是执行了循环体1次打印了代码 (0为假,非0为真)
在循环结构中有两个非常重要的语句“break和continue”
break为停止,在循环体中,当代码运行到break;语句时,会自动跳出最近的一个循环,使循环体停止循环
continue为继续,在循环中,当代码运行到continue;语句时,会自动跳过下面没执行的代码,重新回到条件表达式判断条件是否成立,然后再向下运行循环体。
三种循环相对来说用的最多时for循环,因为它最全面且相对while循环来说,它表达式集中 在一起,条件修改起来也很方便。
笔者认为如果没用确定循环次数使用while循环更简便,确定了循环次数则使用for循环更方 便。但当你要先执行一段代码然后再看条件是否继续循环的时候那么do....while循环则更加合适。
其实并没有什么哪种循环比哪种循环更好的说法,它们都有自己更适用的场景,使得我们更加简便,正确使用能达到事半功倍的效果,而其中循环条件的设置已经调整条件数据能有效的节省代码执行的效率。
我们则更需要动我们的大脑好好思考怎么设置条件以及选择合适的循环语句,让我们写的代码更加简洁明了且执行效率高。
当你能坚持看完这篇文章,相信你已经对三大结构有了一定的掌握。
但是代码能力更多的是自己去写,去锻炼。可能该开始会遇到许多困难,但是我们要勇于跳出自己的舒适圈,当你 感觉到吃力的时候你就已经在慢慢进步的了。
点点关注,跟博主一起成长。
看到最后,各位看官老爷确定不点忍心不点个赞支持一下吗?