上篇blog中我们讲到了switch语句,今天这篇主要涉及do-while循环、break和continue语句、goto语句。
4.do-while循环
基本语法:do
语句;
while( 表达式 ) ;//这里注意while后面是有“;”的
执行流程:
在 do-while 循环中先执⾏图上的“语句”,执⾏完语句,再去判断表达式,如果判断表达式的结果是非0,则继续循环,执⾏循环语句,否则循环结束。所以do-while 语句中循环体⾄少被执⾏⼀次。
而一般 do-while 使⽤在循环体⾄少被执⾏⼀次的场景下,下面进行举例:
输⼊⼀个正整数并计算这个整数是⼏位数。
例如: 输⼊:1234 输出:4 ;输⼊:12 输出:2
这道题目并非必须使用 do-while 语句,但是这个代码就⽐较适合使⽤ do-while 循环,因为n即使是0,也是1位数,是需要统计位数的。
5.break和continue语句
break和continue语句存在于if循环、while循环和do-while循环中,是一种强制结束循环和进入下一循环的语句。
break 的作⽤是⽤于永久的终⽌循环,只要 break 被执⾏,直接就会跳出循环,继续往后执⾏。
continue 的作⽤是跳过本次循环continue 后边的代码而进入下一个循环。
这里需要注意的是,上述所有循环中,break的用法是一样的,而for循环的continue和其他循环稍有不同。
由于break和continue语句使用较为简单,我这里便不再举例说明,但需要说明的是:continue可以帮助我们跳过某⼀次循环 continue 后边的代码,直接跳到循环的判断部分,进⾏下⼀次循环的判断,但如果循环的调整是在 continue 后边的话,可能会造成死循环。详见下例:
上图是正确的代码,而下面展示的是错误使用continue导致的死循环:
下面简单说一下for循环中continue的特别之处,简而言之就是for中的continue在跳过continue后续代码时不会跳过表达式3。(复习一下for的基本结构:)
6.goto语句
C语⾔提供了⼀种⾮常特别的语法,就是goto语句和跳转标号,goto语句可以实现在同⼀个函数内跳转到设置好的标号处。(注意:调用函数并不能算同一个函数内)
例如:
需要注意的是,goto 语句如果使⽤的不当,就会导致在函数内部随意乱跳转,打乱程序的执⾏流程,所以建议是能不⽤尽量不去使⽤。(而且还经常会出现标签未定义的报错)
但 goto 语句也不是⼀⽆是处,在多层循环的代码中,如果想快速跳出使⽤ goto 就⾮常的⽅便了。
比如:
上图中,本来for循环想提前退出得使⽤就得使⽤3个 break,⼀个 break 只能跳出⼀层for循环,如果n层for循环嵌套需要使用n个 break 才能跳出循环,所以在这种情况下我们使⽤ goto 语句就会更加的快捷。
那么关于C语言分支和循环语句的一些见解到此就结束了,欢迎读者进行留言讨论。(后续我会继续更新一些数组的blog)