循环语句
循环语句一共有三种,将依次介绍
1.while语句
样式如下:

和if表达式相似,如果想要表达多层语句同样可以用{}来控制

如图,当执行到while语句时一般判断表达式是否为真,如果为真就执行循环语句,否则结束循环,一般循环内部都会有一个变量来控制循环什么时候结束
举例:打印1-10的数字

2.for循环
for循环是用的最多的一种循环,样式如下:

和while循环一样,for循环也需要一个变量来控制循环的开始与结束
表达式1:对循环变量的初始化
表达式2:对循环结束的条件判断
表达式3:对循环变量的调整

这里不一定是变量自增,也可以是其他变量的调整。总之,当执行到for循环语句时,先执行表达式1将变量初始化,然后在进行表达式2来判断循环是否执行。当其为真时就执行语句,然后循环结束时执行一次表达式3,通过调整使表达式2逐渐不符合条件时(即返回0)然后循环结束。
在循环中,表达式1只循环一次,剩下表达式2和表达式3在循环
举例:

注:for循环后的括号内是可以没有语句的,我们可以把所有表达式都放在其他语句中,但括号内必须包含两个“;”号例如:

3.while循环和for循环的比较


对比两类代码,我们可以发现,两者的判断条件都在()中,但是for循环中还包含了循环变量的初始化与调整语句,更容易代码的阅读和维护
4.do while循环
do while是运用最少的一种循环,样式如下


与其他两者不同,do while在将变量初始化后不是执行判断语句是否为真再进行循环,而是先执行一次循环语句,然后在去判断是否符合下一次循环的条件,如果为假则循环结束。也就是说,无论判断条件是什么,do while循环至少是要执行一次的

break语句和continue语句
当我们在执行循环时有时候会碰见执行到一半,后面不想执行了该怎么办呢?这就要用到我们的break语句和continue语句了
- break语句:顾名思义就是“打破”。它表示永久性的终止,只要执行到了break语句就会立即跳出循环,执行循环后的语句
- continue语句:可以理解为break的削弱版,当执行到continue语句时不会立即跳出循环,而是跳过本次循环中的代码,值得注意的是for循环和break循环中的continue语句是有所差异的
1.break语句



还是打印1-10的数字,当我们的i等于5时符合if的条件,就执行了break语句,循环立即结束没有后续值了,可以看到break语句在三种循环中的作用是相同的
2.continue语句
2.1 while循环和do while中的continue语句
当我们把上文中的break换成continue时:


我们可以看见结果好像相同,但是好像后面缺少了按任意键结束的部分,光标仍在闪烁,这是为什么呢?
既然没有结束部分,我们就可以知道程序还在运行,这是因为当i等于6,执行了continue语句后跳过了打印语句的同时也跳过了调整语句,所以i没有自增而是一直为6,不断的执行continue语句所以程序陷入死循环。
所以我们注意到在while中使用continue语句时如果调整语句在其后面,就可能造成死循环
2.2 for循环中的continue
同样把我们上面代码的break换成continue来看看结果:

可以看到只有数字“6”没有被输出,这就是因为调整语句的位置不同,在for循环中的continue在执行后循环变量仍能进行调整从而顺利进行
循环的嵌套
实际解决更复杂的问题中我们不止需要一个循环,在循环中嵌套一个循环往往才能更好的解决问题,例如我们需要一个矩阵时:

goto语句
goto语句是一种特殊的语句,他能够实现在同一函数之间的快速跳转,例如:

可以看到goto语句成功的跳过了xixi的打印,但如果随意使用goto语句的话就很容易发生逻辑上的错误,所以建议尽量不去使用。
goto语句还有的一大特点就是在多层,类似与循环嵌套中的使用十分方便,类似与:

能帮助我们在发生错误时快速的跳出多层循环,而不是用break来依次执行
分支和循环 完
957

被折叠的 条评论
为什么被折叠?



