这个没有一个确切的标准去判断,还是看你的解题思路,以初期比较典型的画三角这个练习来说,首先你要分析你要怎么样才能达到画出一个固定长宽高由“*”组成的三角图案呢,由于已知三角形的边长,所以要有一个for循环,每循环一次输出一个*号,这样就能画出一行*号了。这是最简单的由现实题目转换为计算机题目的思想,再深入下去,你要画出一个三角形必须下面输出的每一行*号都比上面一行要少一个或者两个,这样的话你不能写七八个for循环来输出一行行的*号吧。你可以想象一下,做一个for循环,每循环一次做的事情由输出一个*号变为输出一行*号不就行了么,这样就做成了一个最简单的嵌套循环。当然,只是这样还不够,这样循环画出来的就不是三角形而是长方形了。在深入考虑下去,既然已知三角形的边长,每一行输出固定个*号,那么结合for循环的特点将变量设置为初始等于三角形的边长,每循环一次变量减去一个,直到最后只输出一行一个*号不就是个三角形了。这样一个三角形就画完了。
说这么多试想告诉你别拘泥于想着什么情况下用单层循环,什么情况下用嵌套循环,只要你把遇到的问题慢慢转换成计算机式的解决方法,自然会想到用什么循环方法解决问题了。
如果要联系嵌套循环,再给你一个练习题,就是自己构建一个整数数组,然后试着自己给这个数组进行排序,你会发现你需要用到嵌套循环的,就像我上面那样分析思路 |