作者ogamenewbie (._.)
看板java
标题Re: 有关for 回圈
时间Thu Oct 26 09:26:51 2006
单看 a++ <= 3 跟 ++a <= 3 这两个部份.
如果你手边有书的话, 理论上会说 ++ 在前或在後的差异.
如果没说或叫你不要用, 那是因为不希望你冒不必要的风险产生非预期的结果
a++ <= 3 可以看成是 ++a <= 3 可以看成是
=================== ===================
a <= 3; a = a + 1;
a = a + 1; a <= 3;
=================== ===================
上面的问题看起来很容易懂, 为什麽会说"冒不必要的风险产生非预期的结果"?
我只能说, 请问 a = (a++) + (a--); 何解?
请在脑袋中想一次, Code 跑跑看.
然後是否产生了预期的结果?
保证换了编译器或 JVM 以後结果依旧吗?
另外for的initial写在( )内和先宣告的差别
对我比较重要的部份是在於那个变数会活多久, 有效范围多大.
至於会有差异, 那就是某个地方有更动到数值, 但是你没有预期到吧.
※ 引述《[email protected] (kimi)》之铭言:
: int a=1,b=10;
: for(;a++<=3;b++)
: {System.out.println("a="+a+"b="+b);}
: 其输出为
: a=2b=10
: a=3b=11
: a=4b=12
: 请问为何会有a=4这种情况呢?
: 另一种..
: int a=1,b=10;
: for(;++a<=3;b++)
: {System.out.println("a="+a+"b="+b);}
: 其输出为
: a=2b=10
: a=3b=11
: 此差异之成因...?
: 另..for的initial写在( )内和先宣告的差别是..?
: 小弟用for写nested loop时..initial写的位置不同.其输出结果也差异甚大.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 163.25.148.49