输出结果是:i=1,j=-1
分析:
- int i = 0, j = 5;
- tp: for ( ; ; )
- {
- i++;
- for( ; ; )
- {
- if(i > j--)
- break tp;
- }
- }
- System.out.println("i = " + i + ", j = "+ j);
复制代码
代码中,外层for循环一次,内层循环6次
进入第一层循环,执行i++,后执行内层循环,
所以进入开始内层循环的时候,i=1,j=5;
内层循环的条件是i>j-- ,也就是j为0时候跳出循环
内层循环:
第一次,i=1,j=5, j-- 再次循环
第二次,i=1,j=4, j-- 再次循环
第三次,i=1,j=3, j-- 再次循环
第四次,i=1,j=2, j-- 再次循环
第五次,i=1,j=1, j-- 再次循环
第六次,i=1,j=0, j-- 符合if语句,跳出tp标准的外层循环。
此题中的重点在与,第六次循环结束后j--是先使用j变量后,在改变j的值。
第六次相当于:
if(i>j)
{
j=j-1;
break tp;
}
|