boolean m,n;
int x=5,y=10;
m=(x>y&&x++==y--);
int a=5,b=5;
n=(a>b&&a++==b--);
System.out.println("m="+m);
System.out.println("n="+n);
System.out.println("a="+a+",b="+b);这里为什么n的值也是FALSE,我觉得++和--的优先级要高于&&和>,那就应该先算++和--
,那这样a和b的值就变了,在算逻辑的时候a>b就不会短路了啊! 请高手帮忙解释一下!
int x=5,y=10;
m=(x>y&&x++==y--);
int a=5,b=5;
n=(a>b&&a++==b--);
System.out.println("m="+m);
System.out.println("n="+n);
System.out.println("a="+a+",b="+b);这里为什么n的值也是FALSE,我觉得++和--的优先级要高于&&和>,那就应该先算++和--
,那这样a和b的值就变了,在算逻辑的时候a>b就不会短路了啊! 请高手帮忙解释一下!
解决方案 »
- 谁可以发给我head first java中文清晰版的电子书啊
- Swing画虚线的性能问题
- poi删除列的问题
- 长期得不到解决的基本问题,希望各位大虾帮帮忙?一个问10分
- APPLET为什么不能IE浏览器打开?
- 如何使用Jacob实现读取Word文件的内容???
- java中连ORACLE的 DriverManager.getConnection(String url) 的url要怎么写啊
- 各位大哥请帮忙解释一下!!!
- 大虾们这是什么问题啊?一个小错误!
- JBOSS的问题
- 高难度,我觉得/JTree下面的节点是个JTable,怎么实现右键菜单获取当前TABLE的内容/
- 数据库连接异常,怎么看sql2000端口号
并不是优先级的问题,因为&&县判断前面的逻辑正确性,当前面为False直接退出判断,所以你的后面a++==b--跟本不去执行。
所以高手编程&&总是true机率高的放在后面,|| 总是true几率小的放在后面,提高效率