for(int i=0;i<10;i++)
{
for(int j=0;j<100;j++)
{
System.out.println(i*100+j);
}
}
这一个for循环是标准的for 嵌套的运用 所以一分析就可以得出会打印10*100共1000个数字。就是说会顺序打印出从0到999的所有数字。
int i=0,j=0;
for(;i<10;i++)
{
for(;j<100;j++)
{
System.out.println(i*100+j);
}
}
而这一个是省略了第一个表达式而是在循环外赋值。则是只会顺序打印出从0到99的所有数字。执行顺序是执行一次外层循环吗,然后进入内层循环执行输出从0到99的所有数,然后跳出执行外层循环,执行9次外层循环并不再执行内层循环,程序结束。之所以这样是因为 第一次执行完内层循环时j 的值就为100。并且不再改变,所以在执行完一次后由于j的值不再符合执行条件而不再执行,只是执行外层循环,
在简单点说下流程 第一步 i=0,进入第二次循环执行i*100+j语句打印出从0到99的所有数字。打印出99后j的值为100,不在符合条件跳出内层循环,执行外层循环,这时i=1,j=100,不符合内层条件,不执行内层,接着执行i的自加,一直到i=10不符合条件 跳出循环,程序结束。
两个的区别就是第一个可以一直给内层J初始化为0,所以可以一直执行内层,而第二种则是不能重复给J初始化而使内层只能执行一次。
执行顺序就是这样。希望能帮到你。
|