A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© WElife 中级黑马   /  2015-7-3 08:11  /  500 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. int month = 9;
  2. if(month<1 || month>12)
  3. System.out.println(month+"月没有对应的季节");
  4. else if(month>=3 && month<=5)
  5. System.out.println(month+"月是春季");
  6. else if(month>=6 && month<=8)
  7. System.out.println(month+"月是夏季");
  8. else if(month>=9 && month<=11)
  9. System.out.println(month+"月是秋季");
  10. else
  11. System.out.println(month+"月是冬季");
复制代码

显示月份
&&是不是有点问题  是不是应该把&&换成&

评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

10 个回复

倒序浏览
不用,&不论左边满不满足两边都判断,而&&只要左边不满足就不去判断右边了。
回复 使用道具 举报
虾米吃螃蟹 发表于 2015-7-3 08:24
不用,&不论左边满不满足两边都判断,而&&只要左边不满足就不去判断右边了。 ...

要是这样 那输入9就  结果应该输出的是秋天了 实际上9>=3满足 就不用去判后面的是否<=5 这样输出的就是春天了
回复 使用道具 举报
&&表示的是与的关系,当左边满足后还要去判断右边。只有当左边不满足才不判断右边
回复 使用道具 举报
WElife 发表于 2015-7-3 08:42
要是这样 那输入9就  结果应该输出的是秋天了 实际上9>=3满足 就不用去判后面的是否 ...

&&表示的是与的关系,当左边满足后还要去判断右边。只有当左边不满足才不判断右边
回复 使用道具 举报
WElife 发表于 2015-7-3 08:42
要是这样 那输入9就  结果应该输出的是秋天了 实际上9>=3满足 就不用去判后面的是否 ...

我觉得你没把”||“和”&&“短路的条件搞清楚
短路的情况
&&:只要一个为false,则整个表达式为false,所以只要判断到有false值,就会终止后面的语句
比如(4<3)&&(4>2),左边(4<3)为false,则整个逻辑表达式(4<3)&&(4>2)必为false,所以不会区执行右边的表达式,也就是说一旦能确定最终的逻辑值,就会终止,不在执行后面的语句;你输入9,9>=3,但是无法确定最终值,所以还要再执行后面的判断
|| :或逻辑,只要一个为真,则整个表达式为真,所以一旦左边为true,则不在判断右边的语句
回复 使用道具 举报
WElife 发表于 2015-7-3 08:42
要是这样 那输入9就  结果应该输出的是秋天了 实际上9>=3满足 就不用去判后面的是否 ...

谢谢啦 我懂了
回复 使用道具 举报
fmi110 发表于 2015-7-3 09:00
我觉得你没把”||“和”&&“短路的条件搞清楚
短路的情况
&&:只要一个为false,则整个表达式为false,所 ...

非常谢谢大神  我懂了  :victory:
回复 使用道具 举报
楼主 貌似不错哦
回复 使用道具 举报
看到你这个问题就知道你没有好好看笔记或者视频,&&和&的功能是一样的,有一点的小区别是&&的左边为假时便不再计算右边的,直接判断为False
回复 使用道具 举报
面试基本知识 还是好好看看吧~~很简单的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马