日期:2014-05-20  浏览次数:20797 次

共享一道面试题
public   class   MyTest
{
public   static   void   main(String   args[]){
int   x   =   0;
int   y   =   0;

for(int   z   =   0;   z   <   5;   z++){
if((++x   >   2)&&(++y   >   2)){
x++;
}
}
System.out.println(x   +   "   "   +   y);
}

}
问最后打印出的结果。
呵呵,虽然有点搞,但还答对了

------解决方案--------------------
6 3
对否?
菜鸟!
------解决方案--------------------
4+2
------解决方案--------------------
8 5
------解决方案--------------------
4 &nbs 2
------解决方案--------------------
6+4
------解决方案--------------------
6 3
是对的...晕~~~
------解决方案--------------------
z = 0时: x = 1 , y = 0
z = 1时: x = 2 , y = 0
z = 2时: x = 3 , y = 1
z = 3时: x = 4 , y = 2
z = 4时: x = 5 + 1 , y = 3



------解决方案--------------------
菜鸟提问:能告诉我为什么吗???
------解决方案--------------------
菜鸟提问:能告诉我为什么吗???
////////////////////////////////////////////
菜鸟告诉你,z是先判断后加,而x,y是先加后判断,但是&&这个东西又让人很无奈,当他发现她前面的条件是个false的时候,他就不做下面的判断了,所以y捞不着加了。这样一直当++x> 2满足了,他才站出来判断,结果他又得跟着x同时+,刚刚满足了条件,z就到了4了。所以if里面只进行了一次,却比y多了3
------解决方案--------------------
luyang1016(闭月羞花猫) ( ) 信誉:100 Blog 2007-1-25 18:13:07 得分: 0



z = 0时: x = 1 , y = 0
z = 1时: x = 2 , y = 0
z = 2时: x = 3 , y = 1
z = 3时: x = 4 , y = 2
z = 4时: x = 5 + 1 , y = 3
///////////////////////////////////////////////////
可以参照他的结果。很明了了





------解决方案--------------------
UP
------解决方案--------------------
没意思 不好玩 太简单
------解决方案--------------------
6 3
------解决方案--------------------
the short-circuit &&
------解决方案--------------------
此题主要考++i和i++,还有&&和||,这两个符号表示简洁与、简洁或。了解了他们的用法,就不难理解问题的答案了。
------解决方案--------------------
6-3
Notice &&
------解决方案--------------------
考得好,真正靠基本功.
如下:
-----------------------------------
a&&b
当为a真的时候才判断b的值,当a为假的时候整个表达式为假,不判断b的价值.
-----------------------------------
------解决方案--------------------
很简单,以前中过一次招,现在不会了
------解决方案--------------------
X++是先用后加,++是先加后用.
&&与运算中,碰到假就停止,后面的表达式不再作运算

刚学的时候也搞了很久,不过试几次就知道咋回事了
:)

------解决方案--------------------