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