1、07 多重循环运用多重循环运用 程序设计基础 2 home back first prev next last 本节目标本节目标 循环嵌套循环嵌套 多重循环运用多重循环运用 循环和算法效率循环和算法效率 穷举法运用穷举法运用 3 home back first prev next last 循环嵌套循环嵌套 5-1 下面两段代码都使用了循环结构下面两段代码都使用了循环结构 第一段代码说第一段代码说 i = 0 直到直到 i = 4 第二段代码说第二段代码说 j 等于等于 0 直到直到 j 等于等于 4 4 home back first prev next last 循环嵌套循环嵌套 5-2
2、将第二段代码拖入第一段代码中的循环结构将第二段代码拖入第一段代码中的循环结构 循环结构内又包含循环结构,这叫循环结构的循环结构内又包含循环结构,这叫循环结构的 嵌套嵌套 第二段代码作为一个子任务,加入第一段代码第二段代码作为一个子任务,加入第一段代码 的循环,也要重复执行的循环,也要重复执行5次次 5 home back first prev next last 循环嵌套循环嵌套 5-3 结果显示顺序如下结果显示顺序如下 i = 0 j 等于等于 0 j 等于等于 1 j 等于等于 2 j 等于等于 3 j 等于等于 4 i = 1 j 等于等于 0 j 等于等于 1 j 等于等于 2 j 等
3、于等于 3 j 等于等于 4 直到直到 i = 4 j 等于等于 0 j 等于等于 1 j 等于等于 2 j 等于等于 3 j 等于等于 4 6 home back first prev next last 循环嵌套循环嵌套 5-4 代码执行顺序分析如下代码执行顺序分析如下 将变量将变量 i 设为设为 0 重复重复5 次次 任务任务1 说说 i = 变量变量 i 的值的值 将变量将变量 i 加加 1 将变量将变量 j 设为设为 0 任务任务2 重复重复5 次次说说 j 等于变量等于变量 j 的值的值 将变量将变量 j 加加 1 7 home back first prev next last
4、循环嵌套循环嵌套 5-5 循环嵌套的一个例子:循环嵌套的一个例子: 本学期有本学期有16个星期(外层循环重复个星期(外层循环重复16次)次) 周六休息一日周六休息一日 周日休息一日周日休息一日 周一至周五上课五日(内层循环重复周一至周五上课五日(内层循环重复5次)次) 上午上午 8:30 上课一次上课一次 中午中午 12:00 吃午饭吃午饭 下午下午 13:30 上课一次上课一次 本学期共上课多少次?本学期共上课多少次? 8 home back first prev next last 丢失的数字丢失的数字 5-1 有一个算式有一个算式 1?3 x 32? = 39?83 ,其中问号代,其中问
5、号代 表的数字看不清了。你能不能编写一个程序,表的数字看不清了。你能不能编写一个程序, 算出三个算出三个?代表的看不清的数字是多少?代表的看不清的数字是多少? 本程序采用穷举法。每个问号代表的数字可本程序采用穷举法。每个问号代表的数字可 能是从能是从0到到9的十个数字之一。因此,每个问的十个数字之一。因此,每个问 号有十种可能。根据乘法原理,总共有号有十种可能。根据乘法原理,总共有1000 种可能性,通过三重循环来实现,每一种可种可能性,通过三重循环来实现,每一种可 能试一下就找到答案了。能试一下就找到答案了。 9 home back first prev next last 丢失的数字丢失的
6、数字 5-2 新建三个变量新建三个变量 i, j, k,代表三个问号,那么,代表三个问号,那么 三个数字可分别表示为:三个数字可分别表示为:103+i*10、320+j、 39083+k*100。 使使(103+i*10)*(320+j) = 39083+k*100 的的 i ,j , k 就就 是我们要找到数字是我们要找到数字 10 home back first prev next last 丢失的数字丢失的数字 5-3 i, j, k 变化顺序变化顺序 i = 0 j = 0 k = 0,1,2,.9 i = 0 j = 1 k = 0,1,2,.9 i = 9 j = 9 k = 0,
7、1,2,.9 含义是依次判断含义是依次判断 103 x 320 = 39083, 39183,39283.39983 103 x 321 = 39083, 39183,39283.39983 193 x 329 = 39083, 39183,39283.39983 11 home back first prev next last 丢失的数字丢失的数字 5-4 答案是:答案是: 123 x 321 = 39483 12 home back first prev next last 丢失的数字丢失的数字 5-5 修改程序,判断修改程序,判断 1?7 x 32? = 39?83 有没有解?有没有解? 看看你的程序是否还能正确运行?看看你的程序是否还能正确运行? 修改程序,判断修改程序,判断 ? x 1? = 6? 有几个解?看有几个解?看 看你的程序是否还能正确运行?看你的程序是否还能正确运行? 13 home back first prev next last 总结总结 循环嵌套循环嵌套 多重循环运用多重循环运用 循环和算法效率循环和算法效率 穷举法运用穷举法运用