java for循环的解释

来源:百度知道 编辑:UC知道 时间:2024/06/07 10:03:44
单个的for循环我还勉强可以看懂,至于for的多重循环我就看不懂了,我帖两个for多重循环的代码,大家帮我解释一下:
第一个是计算阶乘的:
long limit=20;
long factoritl =1;
for(int i=1; i<=limit; i++){
factoritl = 1;
for(int factor=2; factor<=i; factor++){
factoritl *= factor;
System.out.println(i+ "i=is" +factoritl);

}
}
}
}
程序写得不是很好,但打印还是对的。
第二个是计算值数的:
int nValues=50;
OuterLoop:
for(int i=2;i<nValues;i++){
for(int j=2;j<i;j++){
if(i%j==0)
continue OuterLoop;
}
System.out.println(i);

}
}
}
1.解释这些程序的思路,运行的方式是怎样的?就是说工作流程。
2.解释i<=limit和j<=i; 是什么原理?类似i 或者j 或者什么的 <= XXX。
3.i 或者 j<=i 和 j<i 好象运行的结果不同哦,区别在与什么?为什么。
总之for和for嵌套的原理。
我是自学的,理解得不是很透彻。

呵呵,Java可是贵族语言,很有前途的,斗胆向你解释一下那些程序吧:
先说第一个,程序流程大概是这样的,先定义两个long型变量limit,factoritl,并附了初值,然后执行for循环,把程序的格式写清楚一点,可以很明了的看懂:
for(int i=1; i<=limit; i++){
factoritl = 1;
for(int factor=2; factor<=i; factor++){
factoritl *= factor;
System.out.println(i+ "i=is" +factoritl);
}
}
外层for,先定义一个变量i并附初值1,然后检查i是否小于等于limit,成立则进入循环体,执行factoritl=1;然后执行下一个for循环,先给factor附初值2,然后检查factor是否小于等于i,若成立,则进入内层for,执行factoritl *= factor; 并且打印,for内部程序执行完成之后,执行factor++,然后再检查factor<=i是否成立,若成立,继续执行for内部程序,若不成立,则退出for循环体,继续执行下一行代码,在这个例子中,推出内部for后即继续执行外部循环的比较操作,然后再执行内部for,如此循环,直至程序完全退出。
另外,关于i<=limit的问题,此即i小于或等于limit,不知道你的具体问题是什么,这个式子很好理解啊,比如,i=1,limit=2,则i<=limit成立,又如,i=3,limit=3,则i<=limit依然成立,而如果i=3,limit=2,则不成立。
i<j与i<=j只有一点不同,即i=j时,前者不成立,而后者成立,所以你将for循环的判断条件改成i<j之后,就少执行一次循环,当然执行结果不一样。

不知道说了这么多,你有没有听懂,也不太好解释,实在不理解发Email,我再给你解释:michaelpan129@163.com,michaelpan0129@gmail.com