| |
|
开发:
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语言分支与循环的那些事 |
目录 选择结构(分支语句) if? ?switch 循环结构(循环语句) for? while do....while 那什么是语句呢? c语言规定:C语言中由一个分号 ; 隔开的就是一条语句。 if语句
有两点要特别注意,第一点,if语句后面默认只能写一条语句,若想要多个语句需加一个大括号 第二点,第三种类型中else if 可以有多个,但if和else只能有一个!
这段代码你认为打印结果是什么?haha?如果你认为是haha的话恭喜你,接下来你会有所获的。实际上C语言规定else总是与最近的可以匹配的if匹配,所以else是跟if(b==2)匹配的,所以if(a==1)不成立,后面不执行,所以这段代码不输出任何结果。
在这种情况下else才是与第一个if匹配,这也提醒我们平时在写代码的时候记得打大括号。
这两段代码的结果是一样的吗?实际上是一样的,但第一个代码容易造成歧义,实际上如果返回了x,就不会再返回y了,因为一个函数只能有一个返回值,return后的语句也不再执行,?所以我们在平时写代码中要避免写出这种有歧义的代码。 switch语句
语句项是什么呢?举个栗子
default
如果表达的值与所有的
case标签的值都不匹配怎么办?
你可以在语句列表中增加一条default子句,写在任何一个
case
标签可以出现的位置。当
switch表达式的值并不匹配所有case标签的值时,这个default子句后面的语句就会执行。
default可以放在任意位置,并不是只能放在最后。还有,switch语句在使用中是允许嵌套使用的。 while循环
举个栗子
while语句中的break和continue break
continue
所以continue是跳过本次循环continue后的代码。 for循环
表达式
1
表达式
1
为
初始化部分
,用于初始化循环变量的。
表达式
2
表达式
2
为
条件判断部分
,用于判断循环时候终止。
表达式
3
表达式
3
为
调整部分
,用于循环条件的调整。
举个栗子
for循环中的break和continue break
continue
这边很多人会有疑惑为什么不是1 2 3 4,这就是for循环区别于while循环,在上面while循环中continue跳过的是本次循环中continue之后的全部代码,所以i的值没有变还是5,所以下次再进入循环时i还是5,这就造成了死循环。而for循环中尽管continue跳过了此次循环,但i++的操作是在进入循环之前进行的,不在循环体内,所以在下一次进入循环前i的值就加1了,最终只有5没有打印,其它值照常打印。 for循环中需要注意的细节
1.for循环的初始化,判断,调整的三个部分是可以省略的。(for(;;)结果是死循环)
2.判断部分如果省略,意味着判断条件恒为真。平时写代码时建议不要省略
举个栗子
这段代码打印结果是什么?100次haha?我相信很多人肯定会认为是100次haha,那接下了你会有所收获了。实际上这段代码的结果是输出10次haha,问题出在哪呢?首先,i=0我们进入外层循环,然后再进入内层循环,j从0加到10,循环结束,第二次i=1时再次进入外层循环,此次j没有初始化,所以j还是10,不满足进入循环条件,所以本次循环结束,最终只打印10次。这段代码提醒我们在写for循环时不要轻易省略任何一个表达式,这样容易造成程序出现bug。 再举个栗子
这段代码循环进行了几次?死循环?实际上这段代码考察你有没有真正理解三个表达式的含义,表达式2的内容是判断条件,这边特别容易错的,表达式2是给k赋值0,而不是判断k是否与0相等,0为假,所以这个循环不会进去,循环0次。 do while循环
这段代码的结果是10说明了do...while语句的特点是先执行代码,后判断条件。 因do...while使用的场景比较有限,do...while中的continue和break就不再详细介绍了,可以参考前面for循环和while循环。 本人水平有限,请大家批评指正!喜欢我就点个关注吧! |
|
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图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 9:46:50- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |