java中关于for嵌套循环问题,a,b刚刚开始都等于1,怎么能执行循环呢,结果是十个a,怎么来的 不懂请教!

int a,b;
for(a=1;a<6;a++)
{
for(b=1;b<a;b++)

{
System.out.println("a");
}

}

由程序内循环可知,只有当b<a时,才会执行输出语句
a=1时,b<a肯定不满足,跳出内循环,即不输出a
a=2时,内循环相当于for(b=1;b<2;b++),这时内循环条件能满足一次,即输出一次a
a=3时,内循环相当于for(b=1;b<3;b++),这时内循环条件能满足二次,即输出二次a
a=4时,内循环相当于for(b=1;b<4;b++),这时内循环条件能满足三次,即输出三次a
a=5时,内循环相当于for(b=1;b<5;b++),这时内循环条件能满足四次,即输出四次a
a=6时,外循环条件a<6不满足,循环终止;
如此,总共输出10个a追问

请教,b不会自动加的吗?比如说
a=2时,内循环相当于for(b=1;b<2;b++),这时内循环条件能满足一次,即输出一次a
这是b不是要自动加1吗?就变为2?
那么当a=3时,内循环相当于for(b=1;b<3;b++),不是b=2了吗?不是2<3,结果输出一个a了?
请教为什么不是这样?

追答

b是自动加1,变成2了,但这个时候2<2肯定是不成立呀,条件不成立,当然就不会再执行输出语句了,只好跳出内循环,返回外循环呀!
你要搞明白,每次从外循环进入内循环,内循环都是先进行局部变量初始化,即b=1,然后执行条件语句(b<a),条件符合,执行输出;然后b++(这时b=2),再执行(b<a),以此类推,直到(b<a)不成立,跳出内循环~
你应该把for循环的执行过程弄清楚~for(表达式1;表达式2;表达式3){循环体}
for语句执行时,首先执行初始化操作(表达式1),然后判断终止条件是否满足(表达式2),如果满足,则执行循环体中的语句,最后执行迭代部分(表达式3)。完成一次循环后,重新判断终止条件。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-03-10
第一次a=1的时候没执行,第二次a=2,就会打印一次,a=3,打印两次,a=4,三次,a=5,四次,加起来10次。
第2个回答  2012-03-10
a,b刚刚开始都等于1,所以第一次内部的那个for循环没有执行,但下一次a就等于2了,不就可以执行了吗,a=2时执行1次,a=3时执行2次,a=4时执行3次,a=5时执行4次,加起来不就是十个a了吗
第3个回答  2012-03-11
当a=1的时候,b<a为false,所以这次循环没输出
当a=2的时候,输出1个a;
当a=3的时候,输出2个a;
当a=4的时候,输出3个a;
当a=5的时候,输出4个a;
a,b刚刚开始都等于1,只是第二个for循环没有循环,外面的循环还会继续
第4个回答  2012-03-11
第一次a=1的时候没执行,第二次a=2,就会打印一次,a=3,打印两次,a=4,三次,a=5,四次,加起来10次。
第5个回答  2012-03-10
你可以一个一个来嘛,当a = 1时, System.out.println("a");
执行1次,当a = 2时System.out.println("a");执行2次,一直到a = 5;执行4次
,所以就是十次咯
相似回答
大家正在搜