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

如何修复 Java 中的错误操作数错误?

如何修复 Java 中的错误操作数错误?

沧海一幻觉 2022-01-12 16:51:32
我在此行的代码中不断收到此错误:错误:二进制运算符'<='的错误操作数类型代码: if (FIRST_YEAR <= year <= LAST_YEAR || 1 <= month <= 12 || 1 <= day <= 31)
查看完整描述

3 回答

?
UYOU

TA贡献1878条经验 获得超4个赞

由于比较运算符的结合性


FIRST_YEAR <= year <= LAST_YEAR

是相同的


(FIRST_YEAR <= year) <= LAST_YEAR

即你正在尝试比较FIRST_YEAR到year,然后那结果进行比较LAST_YEAR。


第一次比较的结果是一个布尔值:它是否小于或等于,或者不是。


因此,然后将布尔值与某种数字进行比较。语言规范明确要求两个操作数都可以转换为数字类型;由于 boolean 不是那么可转换,这是一个编译器错误。


您必须进行两次单独的比较,并将它们组合在一起:


(FIRST_YEAR <= year) // a boolean

  &&                 // an operator taking 2 boolean operands

(year <= LAST_YEAR)  // a boolean


查看完整回答
反对 回复 2022-01-12
?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

你需要使用&&喜欢if ((FIRST_YEAR <= year && year<= LAST_YEAR) || .......)


查看完整回答
反对 回复 2022-01-12
?
富国沪深

TA贡献1790条经验 获得超9个赞

我建议打破你的逻辑示例


Boolean check = false;


//step 1 logic: year check for first and last year

if(FIRST_YEAR=< Year && Year <=LAST_Year)

check = TRUE;


// if step 1 is true now step 2: month is between 1 and 2:

if(month =>1 and month <=12)

check = check && TRUE;

通过这种方式,您可以轻松调试并且更易于管理的代码。此外,您肯定需要在此处显示错误,例如您希望接受或拒绝用户或系统给出的日期,您肯定会希望显示问题,例如输入的月份不正确或年份不可接受等...


查看完整回答
反对 回复 2022-01-12
  • 3 回答
  • 0 关注
  • 168 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信