while循环也可以嵌套,嵌套循环时,必须将被嵌套的循环语句完整地包含在外层循环的循环体内。
认识while循环嵌套结构
while循环嵌套结构是指在一个while循环结构中,再嵌入一个while循环结构。

在上面的语法结构中,第一层循环称为外循环,第二层循环称为内循环。首先外循环的第一轮触发内循环,内循环将一直执行到完成为止,然后,外循环的第二轮再次触发内循环,此过程不断重复直到外循环结束,使用嵌套循环时,只有在内循环完全结束后,外循环才会执行下一趟循环。
输出100以内的素数
案例1:编写一个程序,输出100以内的所有素数。
问题分析
素数只能被1和自身两个数整除,1不是素数,因为1只能被1个数整除,2是素数,2可以被1和2两个数整除。
如何判断一个数是素数?可以使用该数去除以小于该数的所有自然数(1和自身除外),如果该数能被其它数整除,就说明该数不是素数,否则该数是素数。
程序结构为while嵌套循环,外层循环控制要判断的数,循环范围为2至100(1不是素数),内层循环判断该数是否是素数,循环范围为2至小于该数的所有自然数,在循环范围内,如果该数能被其它数整除,则该数不是素数。
程序流程图

在流程图中,首先创建循环变量i,i初始化值为2(因为1不是素数)。然后建立外层while循环,循环条件是i<100,在外层循环体内创建循环变量j,j的初始值为j-1,然后建立内层while循环,创建循环变量j和用于素数判断的变量prime,j的值为i-1,prime的值为True,默认i是素数,循环条件是j>=2,在内层循环体判断i能否被j整除,如果i能被j整除,说明i不是素数,设置prime为False,调用break语句退出循环,内层循环结束后,在外层循环体内判断prime是否为True,如果为True,输出i。
案例代码
'''
title:while循环嵌套——编程案例01
Description: 输出100以内的素数
author:编程训练营
date:2020.6.28
'''
# 创建外层循环变量i
i = 2
# 循环范围为i至100(不含100)
while i < 100:
# 创建变量prime
# prime用于素数判断,默认i是素数
prime = True
# 创建内存循环变量j
j = i - 1
# 循环范围为j至2
while j >= 2:
# 判断i能否被j整除
if i % j == 0:
# i不是素数
prime = False
# 退出循环
break
j -= 1
# 如果prime为True,说明i是素数
if prime == True:
print(i)
i += 1
上机操作
编写一个程序,求∑1+∑2+...+∑100。
提示:∑是求和符号,∑1是求1至1的和,∑2是求1至2的和,∑3是求1至3的和,……,∑100是求1至100的和。