既然你要详细解释,我就从题目开始来分析:
题目要求函数能干3件事:
1、计算出平均分;2、统计低于平均分的人数;3、把低于平均分的分数保存在另一个数组中
我们来分析一下:
首先,要做到这些是就必须遍历数组中的每一个元素,因此循环是必须的,而且对于这种循环次数已知的问题(数组元素数为9),我们一般会用for循环
其次,在设计程序的时候我们应遵守一项原则,尽量少地使用for循环的个数,尤其最好能避免for循环的嵌套问题(这道题显然不需要)。因此,我们想一想用一次for循环是否能完成这3个任务。显然是不行的,因为如果不计算出总的得分我们就无法得到平均分(任务1),进而就无法比较哪些低于平均分(任务2,3)。所以一个循环是不够的,只能用两个循环。
最后,我们来设计这两个循环。第一个循环只做一件事,就是把数组中的每个元素依次相加得到总成绩。循环结束以后我们就可以计算出平均分了。接着我们发现任务2和3可以同时在第二个循环中进行,先判断每个元素是否小于平均数,如果小于,就把它存入新数组并且把用于统计人数的变量j自增,于是循环结束后我们所需要的人数和新数组就都得到了
纯手打,加个人分析
这里for用了两次是你解题的需要,
第一次for循环,将所有分数加和,然后算出平均分;
第二次for循环,将所有分数跟平均分对比,低于平均分的放到below数组中;
具体要用到几个for循环,就看解题的需要(正如此题)。
本题中两次for是分开的,彼此没有关系,删除一个不影响另一个,不是for循坏的叠加
一次循环用一个for,这个循环里面的每一项还有一个循环,再用一个for,循环下有循环再用……
比如一个级有5个班,用一个for,一个班有四组,第一个for循环中叠加第二个for循环,一组中有12人,叠加第三个for……
其实for循环多次使用的问题不用考虑,使用很自然的事,该用时水到渠成