for循环嵌套

Posted on 2017-06-24 10:39  快乐的~小和尚  阅读(541)  评论(0编辑  收藏  举报

通过一周对c#的学习,发现很多同学在循环这一块都有点晕,其实只要一步一步的去分析执行步骤和条件,思路清晰了,自然就理解了;

而且很多时候都会for循环里面再嵌套for循环,这样如果思路不清晰,那当然就会一脸懵逼;

下面我来用几个例子,来浅谈下for循环和循环嵌套,希望对大家有所帮助;

①.输出五行五列;

我们来分析下循环过程:

1.当i=0的时候,执行内层循环  j=0,输出一个*号,然后j++;这时候j=1,输出第二个*号,然后j++;......;j=4的时候输出第五个*号,然后j++;这时候j=5,不满足j<5,结束内层循环;然后执行下面的换行代码,然后执行外层的i++;

2.这时候i=1,再次执行内层循环  .....................................依然当j=5的时候,跳出内层循环,执行换行操作,再执行i++;

.......

4.当i=4的时候,很明显内层循环执行了0-4总共5次,每次输入5个*号就换行,一共就输入了五排星号;执行i++;

5.当i=5的时候,已经不满足i<5的条件,这时候就会跳出外层循环;最终在控制台显示的结果就是五行五列的*号;

从上面简单的例子,不难看出,只要分析好循环的过程,和什么时候跳出循环,就很容易理清自己的思路,也就不会再遇到循环嵌套的时候一脸懵逼了

②左下角的直角三角形

从这个列子看,依然输出的是五行,那么外层循环依然得循环五次,不同的是内层循环是1,2,3,4,5,这里我们可以理解为内层循环的次数在变化,既然循环次数在变化,那么肯定是控制循环次数的条件在变化,我们可以利用外层i这个变量来控制内层循环的变化,这种操作在嵌套循环中经常用到

1.当i=0的时候,内层为 j=0;j<0+1;j++;很明显内层循环在执行完一次循环体后,执行j++,只时候j=1,不满足j<1;自然得跳出内层循环;

2当i++,i=1的时候,内层为j=0;j<1+1;j++;内层循环执行两次

...

这样就当i=4的时候,也就是第五行的时候,内层循环为j=0;j<4+1;j++;内层输出五个*号;

③输出一个等腰三角形

这里虽然里面嵌套了两个for循环,对于初学者看似很复杂,其实只要理清思路依然很容易理解掌握

第一排,无非就是先输入4个空格,再输入1个*;

空格的规律不难看出就是 4,3,2,1,循环了四次;

星号的规律就是一个1,3,5,7,9的等差数列;

例子2中已经说过,要控制每次for循环的次数,只需要改变循环条件即可,

1.所以输入空格的循环条件就是j<4-i,随着i的递增,j依次j<4,j<3.....j<0;前面定义了j=0,自然跳出这终止了这个for循环

2 .再来看输入星号,只需要把条件定义为k<2i+1;一个简单的等差数列,k<1,执行一次循环;k<3执行3次循环;.......最终k<2*4+1,执行9次循环;等腰三角形就这么输出出来了

 总结:1通过这些例子的分析,说明循环也好,嵌套循环也好,其实无非就是在满足循环条件的情况下,执行循环体,当不满足的循环条件的时候就终止循环体;

  2.内层循环的次数的控制往往是由外层循环的循环变量来控制的,所以说要让内层循环的次数发生变化,经常我们用的方法就是 j<(一个有外层变量i书写出来的简单运算方法)