while循环运用场景:假设现在需要你算出1-9977之间所有的数字累计求和。
while循环语法:
while 判断条件:
执行语句……
点击查看代码
"""
while 循环
while 条件判断:
如果条件成立就执行里面的代码
while 条件判断:
条件成立执行
else:
条件不成立执行
"""
代码示例:
定义变量
i = 1
while i < 100:
print(i)
i += 1 # i = i + 1
else:
print("100拉不成立了!") # 结合具体的业务场景来进行选择
代码示例:
a = 1
while a < 10: # 当 a >= 10 时,条件不成立
print(a)
a += 2 # 等价 a = a + 2
输出:1 3 5 7 9,下面是详细执行流程:
分析上面的代码:
先定义一个变量
当while循环之后是条件表达式,如果条件满足条件,就会继续执行while内的代码,执行完所有while内的代码后,又重新回到第二行,再次检查条件 a 是否小于10 ,条件是否成立;
1.当a < 10 条件不成立时,则跳出 while 循环,由于循环之外没有任何代码,所以会直接退出程序;
2.当 a < 10 条件成立时,则继续执行 while 循环内部的 +2 操作;
有了以上基础知识以后,我们再回头解决一下上面提到的问题,计算1-9977的和如何解决?
#计算1-9977的和
a = 1
sum = 0
while a < 9977:
# 当a >= 9977 时条件不成立,跳出循环,
# a 的值每次加1,如果要 >= 9977 ,意味着要循环 9977 次
# print(a)
a += 1 # 等价 a = a + 1,a的值每次累计加 1
sum += a # 等价 sum = sum + a
print("while循环一共执行了 %d 次" % a) # a 的值每次加1 ,
print("1~99777之间所有的数字累计求和的结果是:{}".format(sum))
'''
输出结果:
while循环一共执行了 9977 次
1~9977之间所有的数字累计求和的结果是:49775252
'''
while循环案例练习
代码示例:
"""
使用while循环在终端输出 5 * 5 的矩形
*****
*****
*****
*****
*****
"""
i = 1
while i <= 5:
j = 1
while j <=5:
if j == 5:
# 最后一个不用加空格
print("*",end="")
else:
print("* ",end="")
j += 1
print("")
i+=1
用 while 循环打印三角形
代码示例:
"""
while 打印三角形
"""
# 控制行数
i = 1
while i<=5:
# 控制里面的个数
j = 1
while j <= i:
print("*",end="")
j += 1
print("")
i += 1
死循环
有的小伙伴可能会想,既然循环是基于判断条件成立就执行后面的代码,那么如果条件一直成立呢?
那么恭喜你,进入死循环了,程序退不出来了...
代码示例:
点击查看代码
while True:
print('我是最世界上最美丽的人!')
'''
输出结果:
我是最世界上最美丽的人!
我是最世界上最美丽的人!
我是最世界上最美丽的人!
我是最世界上最美丽的人!
............
............
'''
如何解决死循环的问题,我们可以使用 break 和 continue 关键字解决 !
break关键字
代码示例:
点击查看代码
a = 0
while True: # 条件永远成立,如果没有break ,死循环
a += 1 # 等价 a = a + 1,a 的值不停的累计加 1
if a == 100:
break # 当a == 100 ,条件成立时,break 跳出循环,结束程序
print("a = %d" % a)
print("循环结束,退出程序")
'''
输出结果:
a = 1
a = 2
a = 3
a = 4
....
a = 96
a = 97
a = 98
a = 99
循环结束,退出程序
'''
上面代码 while 死循环,只有当 while 循环中的条件 a == 100 成立时,才会执行 break 退出循环,记住关键字 break 。
continue 关键字
如果在 while 循环使用 continue ,意味着结束本次循环,continue 下面的代码将不再执行,继续下一次循环。
代码示例:
点击查看代码
a = 0
while True: # 条件永远成立
a += 1 # 等价 a = a + 1,a 的值不停的累计加 1
if a == 100:
continue # 当a == 100 ,条件成立时,continue 继续下次一循环
print("a = %d" % a)
print("循环结束,退出程序")
'''
输出结果:
a = 1
a = 2
a = 3
a = 4
...
a = 96
a = 97
a = 98
a = 99 # 99后面没有输出100
a = 101
a = 102
a = 103
....
'''
当程序使用 continue 关键字,程序再次陷入死循环,各位小伙伴注意到没有?在程序打印到控制台的时候,99之后就是101了,唯独没有100。
这是因为当 a 的值为100时,循环中执行了 continue ,程序代码会直接跳过 continue后面的代码,回到 while 循环的最开始。
总结:
1、break 是结算循环,当前的 while 循环停止;
2、continue 是结束本次循环,继续下一次循环,实际上循环还没有停止;
以打篮球为例子,如果使用了 continue 就是中场休息,休息完继续打;
如果使用了 break 就是比赛结束;