外层循环每执行一次,内层循环就要执行N次。
比如:
for(int i = 0;i <10; i++){
for(int j = 0; j < 10;j++){
System.out.println(i*j);
}
}
这里总共输出100个数,循环执行100次,即I每增加一个数,都要与j的全部数字相乘。
给你一个例子,你可以看看,不明白的问我
public class A {
public static void main(String[] args) {
for (int i=1;i<=9;i++)
{
for (int j=1;j<=i;j++)
{
System.out.print(i+"+"+j+"="+(i+j)+" ");
}
System.out.println();
}
}
}
给你发个程序你看看.应该就能看懂了.呵呵.
举个例子:
用for循环输出以下图案:
*
***
*****
*******
#include
main()
{
int i,j,k;
for(i=0;i<=3;i++)
{
for(j=0;j<=2-i;j++)
printf(" ");
for(k=0;k<=2*i;k++)
printf("*");
printf("\n");
}
}
for(i=0;i<=3;i++)下面大括号里面的for(j=0;j<=2-i;j++)和for(k=0;k<=2*i;k++)就是它的两个嵌套子循环。
首先程序执行父循环,i=0;
然后执行子循环里靠前的for(j=0;j<=2-i;j++),j=0;
满足j<=2-i这个条件,打印一个“空格”。
这个子循环继续自循环,j=1;依然满足条件,继续打印一个空格;
继续自循环,j=2;依然满足条件,再打印一个空格。
继续自循环,j=3,这时已经不满足j<=2-i这个条件了。跳出循环。执行下面的代码。
也就是第二个子循环for(k=0;k<=2*i;k++),它依然是在父循环的i=0的条件下执行。
第一轮自循环,k=0,满足条件k<=2*i;k++),打印一个*号。(注:这个*号是跟在前面的那三个空格之后,因为前面一个子循环没有打印换行。
第二轮自循环:k=1,不满足条件k<=2*i;k++),跳出自循环,执行后面的代码printf("\n"),换行。
(注:printf("\n")这句代码并不是包含在for(k=0;k<=2*i;k++)这个循环里面的,因为一个条件语句下如果不用大括号括起来,默认为只包含下面的第一段代码。
这时父循环第一轮循环全部结束,执行第二轮父循环。i=1;在这个条件下首先判断是否符合父循环本身条件,如果符合,依次判断两个子循环是否满足条件,输出相应结果。如果不符合,直接跳出;
总结一下,嵌套循环的执行原则是:首先执行父第一轮父循环,在满足第一个父循环条件下完全执行子循环。如有多个子循环,按照从上往下的原则完全执行。也就是说要第一个子循环进行一个完整的循环之后才会继续执行下一个子循环。