| |
|
开发:
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语言初阶——1. 分支与循环 -> 正文阅读 |
|
[C++知识库]C语言初阶——1. 分支与循环 |
? ? ? ?时间过得可真快,距离上一次写博客已经过了一个月了。这一个月事儿可真是太多了,终于迎来了这美好的可以安静写博客的机会(其实就是为自己偷懒找的借口)。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?那废话不多说,之后我们还是要好好学习,好好写博客。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?今天带来的是C语言初阶的分支与循环。 目录: 2.3.3 do...while循环中的break和continue ? ? ? ??这一部分那就主要是分支语句和循环语句,分支语句包括:if else语句,switch选择语句。循环语句包括:while循环语句,for循环语句,do while循环语句。最后还有goto语句。 ? ? ? ? 那什么是语句呢? ? ? ? ??C语句可以分为以下五类:1.表达式语句 2.函数调用语句 3.控制语句 4.复合语句 5.空语句。 ? ? ? ? ?这里可以简单的提一下:?控制语句用于控制程序的执行流程,以实现程序的各种结构方式,它们由特定的语句定义符组成。 C语言有九种控制语句,可分为以下三类: ??1. 条件判断语句也叫分支语句:if语句、switch语句; 2.?循环执行语句:do while语句、while语句、for语句; 3.?转向语句:break语句、goto语句、continue语句、return语句。 一、分支语句 (选择结构)?? ? ? 不同的选择有不同的结果,C语言也一样,不同的选择,代码执行情况也会不同。就和做选择题一样,给几个选项,对号入座。(最简单的理解,好好学习,走上人生巅峰;那不学习,就只能家里蹲呗) 1.1 if语句1.1.1 if语句语法结构? ? ? ? 不管怎么样,首先先了解语法结构是什么样的。(得知道是咋用的吧) ? ? ? ? 请看:
如果表达式的结果为真,则语句执行,0表示假,非0表示真。 以下三种方式都可以使用,根据不同的场景选择不同的方式。 第一种:
第二种:
第三种:
? ? ? ?这里是我的一个小习惯,不管是if,else if还是else后面我都习惯加上大括号再写代码,既美观,又可以增加代码的可读性,这样写也可以避免一些问题的出现,比如悬空else。 1.1.2 悬空else
这段代码正确的理解应该是这样
这就是悬空else的问题,else匹配是else和它离的最近的且还没有匹配的if匹配。 这只是一种理解方式,大括号加在不同的位置会有不同的效果。 还是那句话,我建议,加括号!加括号!加括号!
总的来说,if有很多书写形式
?(2)这种形式更加整洁美观,代码可读性高。 ?(4)这种最大的区别就是括号里的写法,(=)的意思是赋值,(==)的意思是判断是否相等 ?这里缺少了一个=,但是程序还是跑过去了,但会有一个警告。 ?这样写一旦缺了一个=,程序会直接报错,根本就跑不过去,避免因为忘了加=产生的bug。 1.2 switch语句?switch语句也是一种分支语句,常用于多分支的语句,分支了,用if语句就非常麻烦了。
比如:
输入1,输出星期一
输入2,输出星期二
输入3,输出星期三
输入4,输出星期四
输入5,输出星期五
输入6,输出星期六
输入7,输出星期日
?
这样用if语句用起来就非常麻烦。 1.2.1 switch语句语法结构它的语法形式
上述例子可以这样写:
还可以换一种形式:
根据我们的需求可以变换代码的形式。 由以上例子可知,
在最后一个 case 语句的后面加上一条 break语句,之所以这么写是可以避免出现在以前的最后一个 case 语句后面忘了添加 break语句。
1.2.2?default子句
用于表达式的值与所有的
case
标签的值都不匹配的情况。
其实也没什么,结构就是所有的语句都被跳过而已。
程序并不会终止,也不会报错,因为这种情况在
C
中并不认为是个错误。
但是,如果你并不想忽略不匹配所有标签的表达式的值时该怎么办呢?
可以在语句列表中增加一条
default
子句,把下面的标签
default
:
写在任何一个
case
标签可以出现的位置。
当
switch
表达式的值并不匹配所有
case
标签的值时,这个
default
子句后面的语句就会执行。
所以,每个
switch
语句中只能出现一条
default
子句。
但是它可以出现在语句列表的任何位置,而且语句流会像执行一个
case
标签一样执行
default
子句。
所以在每个 switch 语句中都放一条default子句是个好习惯,甚至可以在后边再加一个 break。 ?二、循环语句2.1 while循环? ? ? ?循环语句,顾名思义就是语句可以执行多次,if语句当条件满足的情况下,该语句只会执行一次,但会有同一件事需要我们去执行多次的情况,这里就需要用到循环语句。 ? ? ? ?第一种while循环 2.1.1 while循环语法结构
这里简单画了一个图(第一次画,有点丑,别介意) 2.1.2 while循环语句执行流程while语句执行的流程图:(表达式 == expr) 下面有一个简单的代码,来计算n的阶乘的和
这种方法也许不是最简便的,这里只提一种,简单介绍while循环语句的用法。
2.1.3?while语句中的break和continue? ? ? ?这里先介绍一下break这个关键字,它不仅可以在循环语句中使用,分支语句等都可以使用,那必定是有使用它的意义。
? ? ?
?其实在循环中只要遇到break,就停止后期的所有的循环,直接终止循环。
所以while中的break是用于永久终止循环的。
? ? ? ?
这里的break它的作用是不执行该循环体break下面的语句,直接跳出循环体,所以该程序的输出结果是:1 2 3 4 。
continue在while循环中的作用是:
? ? ? ?continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,
而是直接跳转到while语句的判断部分,进行下一次循环的入口判断。
2.2 for循环? ? ? ?介绍完while循环,那再来说一下for循环,for循环也是我用的最多的,也是最方便的一个循环语句。 2.2.1 for循环语法结构
2.2.2 for语句执行流程for语句执行的流程图: ? ? ? ?由此观之,对比一下for循环和while循环,for循环在编写的时候更加简洁,更加方便,查找修改集中,所以for循环的使用频率也更高。 2.2.3 for循环中的break和continue????????当然,在for循环中也可以使用break和continue,它们的意义和while循环中相差不大,这里就不过多介绍了,但还是有一定的差异。 break:
continue:
2.2.4?for语句的循环控制变量
建议:
1. 不可在for 循环体内修改循环变量,防止 for 循环失去控制。
2. 建议for语句的循环控制变量的取值采用“前闭后开区间”写法。
????????这里稍微提一下,for循环后面的括号中的三个表达式是可以省略的,可以这样写,但不建议这样,容易导致出现一些问题。如果省略掉,for循环判断条件恒为真。 2.3 do...while() 循环2.3.1do...while语句的语法
do...while语句执行的流程: ?2.3.2 do..while语句的特点? ? ? ? 不管三七二十一,循环至少执行一次,使用的机会比较少,所以不常用。
????????如果在编译器上执行,屏幕上会直接打印10,i=10,判断条件i<10这个一开始就是错的,但do...while语句会直接执行一次,再开始判断,所以直接打印一个10。 2.3.3 do...while循环中的break和continue用途差不多,也就不过多说明了,直接呈上下面两段代码 break:
continue:?
三、goto语句
????????C语言中提供了可以随意滥用的
goto
语句和标记跳转的标号。 从理论上 goto
语句是没有必要的,实践中没有
goto
语句也可以很容易的写出代码。 但是某些场合下goto
语句还是用得着的,最常见的用法就是终止程序在某些深度嵌套的结构的处理过程。
????????例如:一次跳出两层或多层循环。
多层循环这种情况使用
break
是达不到目的的。它只能从最内层循环退出到上一层的循环。
代码如下:
结语:? ? ? ? 那关于C语言的分支与循环就介绍完了(完结撒花)。之后也会分享更多的有关C语言的内容,尽请期待。 |
|
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/24 10:28:24- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |