| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> C语言分支循环语句 -> 正文阅读 |
|
[C++知识库]C语言分支循环语句 |
需提前看:初识C语言(5)C语言一些基本常识, 目录 分支语句if语句单if语句使用if语句是C语言中最常见的,他的结构就是if(条件),如果条件成立就进入语句,否则就不进入。使用方法如下
需要注意的一点是,当if(条件),条件成立的时候。我们才运行最靠近if的{内容}中的内容。什么意思呢?我们运行程序,发现打印出来了,1和a<b。这就说明,注释1的括号是最靠近if的{},所以注释1的{}中的所有内容都会被打印。 还需要注意的一点就是,如果{}上面没有条件语句,{}是没有意义的。 ?if else语句如果我们想写两个对立的条件,难道写两个if语句吗?毫无疑问,这样显得很呆。于是C语言提供了if else语句,if(条件){内容1}else{内容2}。这个语句的特点就是,如果条件成立,执行内容1,如果条件不成立,执行内容2。示例如下
if else if else语句既然有了if else语句,但是有时候我们又不可能只出现两种情况,于是C语言又提供了if else if else语句。 写法如下if(条件1){内容1}else if(条件2){内容2}else if(条件3){内容3}else{内容4},这个语句就是,进行判断条件1,如果条件1成立,执行内容1,之后的所有else if和else全部跳过。如果条件1不成立,进行条件2判断,条件2成立就执行内容2,依次类推,如果一直都不成立就执行else中的内容。 注意:如果不知道&&是什么的,可以看初识C语言(5)C语言一些基本常识。
switch语句switch基本结构有时候可能会出现多分支的情况,比如说,输入1,执行内容1。输入2,执行内容2。如果我们全部用if else if会显得很不美观。于是C语言提供了switch语句,用法如下
?这个意思就是说,如果变量a是1-5,就输出周一至周五,如果变量不是1-5,就输出周末。结果如下 很多人可能还没有理解switch语句是什么。以这个为例子,a是2,程序就直接跳到case 2:然后依次执行后面的所有内容!这个时候有人会有疑惑,明明这里只输出了一个星期2啊,怎么是从case2开始依次执行后面的所有内容呢?原因很简单,因为我们这里加了break; ?break作用我们看到,switch语句,每一个case后面都有一个break;我们尝试去掉break看看会发生什么
结果如下 ?很明显,我们发现他输出了星期2—星期5和周末。这就是我们上面说的程序就直接跳到case 2:然后依次执行后面的所有内容! 现在我们知道了break的作用就是结束switch这个语句。 default作用我们看到switch最后面有一个default,而这个default作用和if else中的else的作用一样。就是说,如果输入的变量a都不满足上面case的要求,他就执行default这个语句。看代码
结果我们看到什么都没有输出 循环语句while语句while语句结构while语句比较简单,while(条件){内容},只要条件成立,内容就一直执行。所以我们需要一个让条件在内容中受到衰减,最后条件不满足。否则程序会一直进行下去(注意,在嵌入式写程序中,一定会有一个while(1)让程序一直跑下去,因为我们不能让程序停止) 这个地方a--。表示a这个变量在自己减1,比如说a现在是6,a--之后,a现在就是5了。
?输出结果 ?while语句中break应用我们根据上面所学,可以知道break可以结束一个switch语句。但是break在C语言中作用不仅如此,他还可以结束当前的循环。 在循环中只要遇到break,就停止后期的所有的循环,直接终止循环。所以:while中的break是用于永久终止循环的。
根据上面代码,我们运行结果如下 ?可以看到,程序就输出了1,2,3,4。但是没有输出5和接下来的数字。这就是因为break在作用。当i=5的时候,进入if语句,然后break结束当前while循环。需要注意,break只会匹配最近while或者switch。
我们执行上面代码,结果是而假如我们把这个break放在外面看看会怎么样
??结果发现只有一个a=1,这就表明了,break只能结束一次循环,而这次循环就是最接近他的那个。 ?至于switch可以自己尝试使用以下,我再次就不再啰嗦了
?while语句中continue应用continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,而是直接跳转到while语句的判断部分。进行下一次循环的入口判断。
?打印出来结果,我们发现只有5没有被打印。这就解释了结束continue后面的语句,重新开始进行进行while判断。 ?这个时候有人会有疑惑,我的i一开始明明是1啊,为什么是从2开始打印的呢?我们可以看到,在while循环里面,我们先是i自增了一次,然后再打印的,所以是从2开始打印。 但是有人就说,如果我把i=i+1放在while语句的最后面不可以了吗?我们尝试一下
?结果如下,程序打印出4之后,就不动了。也不弹出?请按任意键继续. . .的提示,这是为什么呢?因为程序还在运行,所以没有弹出。 我们说了,结束continue后面的语句,重新开始进行进行while判断。但是因为i=i+1放在了continue后面,那么i=5成立的时候,i永远不会自增,这就导致i永远会是5,while语句的i<=10永远成立,从而进入一个死循环。 ? for语句for语句结构现在我们开始说for语句,这个语句比较重要,经常会用到!!!for语句的结构如下。
?其实for语句的作用和while语句类似,都是用于循环的。但是for语句有一个特点,他可以进行条件的调整和初始化,这样让程序更加具有阅读性。我们拿上面那个while做例子
根据两者对比,很明显看到for语句更加方便,特别是循环条件的调整,直接写在了for里面,方便查看。 for语句的省略写法我们可以看到,一般定义变量的时候就已经初始化了,如果我们在for语句中的初始化部分和定义变量的初始化一样,是不是可以省略掉初始化部分?答案是可以的,其实for循环中,唯一不可省略的部分就是中间的判断部分。
for循环中的break和continue我们发现在for循环中也可以出现break和continue,他们的意义和在while循环中是一样的。 但是还是有些差异。 在break中,for和while区别不大。两个代码结果一样
?但是continue不一样,还是有些许的区别。我们对比两个代码发现,for循环中,可以成功打印除5以外的1-10所有数字。而while循环中,打印的是除5以外的2-11所有数字。 这个是为什么呢?因为while中是先进行i自增,再打印,所以是2-11的数字,并且i自增不能写在continue之后,不然会进入死循环。(上面讲了)但是for不一样,这个i的自增是执行完for里面的内容之后再进行的。这个i自增不属于for里面的内容,不会被continue给省略掉。
do while 语句do while 语句结构do while比较特殊,他是先执行内容再进行条件判断。这就表明了至少要循环一次,很少用,而且它的作用while都可以实现,了解一下即可。以下是他的结构:
这个语句也没什么可讲的,while语句就是先条件判断,再执行语句。do while就是先执行语句,再条件判断,条件判断成功重新执行一次语句,如果条件判断失败,跳出循环。这导致他至少执行一次命令。 通俗的话来说就是,while是一个听话的孩子,父母说可以做,他才做。而do while不一样,他喜欢先斩后奏,先打游戏,如果父母看见允许就继续打游戏,如果不同意,那起码打了一盘游戏再结束呗,不亏。 需要注意:当第一次进入do while语句之后,执行完语句,然后就可以相当于是在执行while语句了。还是讲个例子理解一下。
看这个代码,如果是while语句,那么他就不会执行。但是是do while,那么先执行一次语句,再和while语句一样,条件不成立,不执行语句。 do while 语句中的break和continuedo while中的break和continue与while一样。一样需要注意,i++要再continue前面。(只有for语句不需要注意这一点!)
|
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/11 12:59:31- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |