While是循环结构中重要的一个部分。
基本使用格式
while 循环条件:
......条件成功之后的子代码
代码执行时会先判断条件,条件成功之后再执行子代码,否则直接跳过到下一个同等级代码。
count = 0
count += 1
count += 1
count += 1
count += 1
count += 1
这样重复的代码使用循环就可以简化成
count = 0
while count < 5:
count += 1
当count小于等于5时,循环执行count+1,直到count为5,条件不成立,即中断循环。
循环的中断
循环有两种中断方式,一种是循环条件不成立,一种是使用break。
基本使用方法
例:从0开始计数到5,但是到3时就结束循环
count = 0
while count < 5:
count += 1
if count == 3:
break
当break触发时,无论break后面还有多少子代码需要执行,都会直接结束当前break存在的循环。
所以当count到3时,循环会直接中断,最后count的数值为3,无法到达循环条件的count>5。
循环的跳过
当循环执行到某一阶段需要跳过,而又不想直接中断循环,可以使用continue。
基本使用方法
例:从0开始打印到5,但是跳过3
count = 0
while count < 5:
count += 1
if count == 3:
continue
print(count)
当count到3时,会因为continue跳过后续代码直接回到while开始继续循环,使得count为3时无法触发print来打印数值。
continue与break的同异
同 | 执行时会直接跳过后续的子代码回到while |
异 | 当触发continue时,会直接回到while处开始下一循环 |
while与else
else除了在if条件中作为其他分支和其他条件出现,还可以在while循环的结尾出现。
基本使用
当循环按照设置好条件正常结束时,才会额外执行else的内容,否则会跳过else。
死循环
因为while无法设置循环的执行次数,所以终止循环的方法只有通过条件和break。
如果一段循环一直在执行无法结束循环,那么这个循环就叫死循环。
死循环案例1:无法达成条件
count = 4
while count < 10:
count *= 0.5
print(count)
if count == 3:
break
该代码执行时由于变量*0.5一直变小无法达成条件,同时也无法因为等于3触发break,会一直执行count*0.5的操作。
死循环案例2:变量没有发生变化
count = 0
while count < 10:
if count == 5:
continue
count += 1
print(count)
该代码执行时会因为count等于5时一直执行continue而跳过count+1,变量无法变化而一直执行continue操作。
死循环代码会因为一直执行而导致内存无限计算和存储导致溢出,严重时会直接卡死应用程序,所以要避免死循环。