java基础问题,帮忙解析一下,实在不懂

class MultiFor{

public static void main (String[] args){
for(int x=0; x<4; x++){
for(int y = 4;y>2;y--){
System.out.println(x+" "+y);

}

if(x == 1){
x++;
        }
    }
}

}

为什么输出的结果是
0 4
0 3
1 4
1 3
3 4
3 3 过程是怎样计算的,求解析,感谢了 !!!

阅读 3.1k
7 个回答

亲,你可以用 eclipse ide 给 debug 一下,就能看出执行流程了。

你还是看看for循环,if语句是什么吧

这跟java没有多大关系吧,你需要搞懂的是循环的原理。建议好好看基础,两层循环看不懂就先看一层循环,不要心急。

for(int x=0; x<4; x++){
    for(int y = 4;y>2;y--){
    System.out.println(x+" "+y);
}
if(x == 1){
x++;
        }
    }
}

看你的主体部分,x从0开始,进入y的循环,for循环在没有结束判断条件时是一直进行的,除非条件失效,此时,y从4开始,即(0 4),(0 3),到y=2时不再满足循环条件,跳出,进入if判断,此时x=0!=1,
结束第一次循环,此时打印的结果为0 4;0 3,同理,进入下一次循环,同样y的循环结束后,输出1 4;1 3,进入if判断,此时x==1,满足判断,进入if条件,x++,x置为2,结束判断,由于x本身位于x的for循环内,
此时结束循环,x需要自增1,所以,x的值自增为3,进入下一次循环。下次循环同理,输出,3 4;3 3.结束y,进入x判断,不满足,结束本次判断,结束循环,x置为4。此时不满足x的循环条件。跳出,此段程序结束。

(ps:码完字发现你已经知道了,当我说了废话)

首先建议你把代码格式重新整理下, 看着很累啊。 建议你看看java语言的控制流程。

每每看到这些完全没有缩进的代码,我都深深的感觉到这个世界的恶意!

i++ ,++i,
加号在前面是先出结果,如i=1,++i = 2.
加号在后面是后加在出结果,i=1,i++ = 1.跳过i++之后才会等于2

for(int x=0; x<4; x++) 中 x++是在 for 一次 over之后执行的,所以结果你自己推敲一下

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题