为了账号安全,请及时绑定邮箱和手机立即绑定

&&和&的问题,求大神解答

public class yugongneng {
 public static void main(String[] args) {
  int n=10;
  boolean b=(n<8)&&((n=1)!=0);
  int m=20;
  boolean b1=(m<8)&((m=1)!=0);
  System.out.println(n);
  System.out.println(m);
  
 }
}

得到的结果为10和1   

为什么会得到m=1的结果???

百思不得其解呀,求大神帮忙解答

正在回答

1 回答

单与和双与的区别m进行了位运算而不是逻辑运算

0 回复 有任何疑惑可以回复我~
#1

乱七八糟的代码 提问者

没有看懂...
2017-07-08 回复 有任何疑惑可以回复我~
#2

成长中的小菜鸟 回复 乱七八糟的代码 提问者

双与称为“短路与”当表达式右边为false时,左边就不会在判断了所以n不会等于1.而是等于10 单与是不管左边还是右边的表达式为true或false,两边都要判断。所以m < 8为false,运行到左边为m=1;
2017-07-13 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第一季(IDEA工具)升级版
  • 参与学习       1165228    人
  • 解答问题       17581    个

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

进入课程

&&和&的问题,求大神解答

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信