共享一道面试题
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++是先用后加,++是先加后用.
&&与运算中,碰到假就停止,后面的表达式不再作运算
刚学的时候也搞了很久,不过试几次就知道咋回事了
:)
------解决方案--------------------