java新手,问一个很简单的问题,勿喷

卖云吞的 2014-10-22 09:09:25
在网上看到这个题目,为什么答案等于12?表示没看懂。
int i=6,j=8.k=10,m=7;
if(!(i>j|m>K++)) K++;
...全文
117 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
卖云吞的 2014-10-22
  • 打赏
  • 举报
回复
谢谢大家热心回答,这样说就明白了
shixitong 2014-10-22
  • 打赏
  • 举报
回复
	public static void main(String[] args) {
		int i=6,j=8,k=10,m=7;
		if(!(i>j|m>k++)){
			//执行了一遍k++
			System.out.println("k="+k);
			//执行第二遍
			k++;
		}
		System.out.println("k="+k);
	}
huoxu 2014-10-22
  • 打赏
  • 举报
回复
因为 | 是当第一个条件判断完之后 不管结果是true还是false 都会 吧 后面的判断了,而用 || 当第一个条件是true 后面的就不判断了, 所以 一共做了2次 K++
skyWalker_ONLY 2014-10-22
  • 打赏
  • 举报
回复
int i=6,j=8.k=10,m=7;
if(!(i>j|m>K++)) K++;
!(i>j|m>K++)这条表达式的结果为true,因为i < j且m < k++,这样执行后k的结果为11,执行了++。由于if表达式的结果为true,所以执行k++,执行后k的结果为12
-江沐风- 2014-10-22
  • 打赏
  • 举报
回复
这是考虑运算符的优先级吧;

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧