int a,b;
for(a=1;a<6;a++)
{
for(b=1;b<a;b++)
{
System.out.println("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)。完成一次循环后,重新判断终止条件。