Logo

郎哥编程

while循环嵌套结构

2020-09-04 232

while循环也可以嵌套,嵌套循环时,必须将被嵌套的循环语句完整地包含在外层循环的循环体内。

认识while循环嵌套结构

while循环嵌套结构是指在一个while循环结构中,再嵌入一个while循环结构。

01.png

在上面的语法结构中,第一层循环称为外循环,第二层循环称为内循环。首先外循环的第一轮触发内循环,内循环将一直执行到完成为止,然后,外循环的第二轮再次触发内循环,此过程不断重复直到外循环结束,使用嵌套循环时,只有在内循环完全结束后,外循环才会执行下一趟循环。

输出100以内的素数

案例1:编写一个程序,输出100以内的所有素数。

问题分析

素数只能被1和自身两个数整除,1不是素数,因为1只能被1个数整除,2是素数,2可以被1和2两个数整除。

如何判断一个数是素数?可以使用该数去除以小于该数的所有自然数(1和自身除外),如果该数能被其它数整除,就说明该数不是素数,否则该数是素数。

程序结构为while嵌套循环,外层循环控制要判断的数,循环范围为2至100(1不是素数),内层循环判断该数是否是素数,循环范围为2至小于该数的所有自然数,在循环范围内,如果该数能被其它数整除,则该数不是素数。

程序流程图

02.png

在流程图中,首先创建循环变量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的和。

评论区

登录 后发表评论
暂无评论