首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >二进制运算符'<=‘的坏操作数类型

二进制运算符'<=‘的坏操作数类型
EN

Stack Overflow用户
提问于 2016-03-09 18:57:31
回答 3查看 8.9K关注 0票数 2
代码语言:javascript
复制
class First {  
   public static void main(String[] arguments) { 
      int x =60;  
      if (51 <= x <= 9) {   
         System.out.println("Let's do something using Java technology.");
      } else { 
         System.out.println("Let's");
      }
   } 
}

我得到了错误,我无法理解为什么,因为我是新的Java和编程。

二进制运算符<=的坏操作数类型

代码语言:javascript
复制
if (51 <= x <= 9) {
   first type:  boolean 
   second type: int
1 error
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-03-09 19:49:04

Java的工作方式:首先计算51 <= x <= 9 51 <= x,这会导致代码中出现false (布尔值)。然后在<= 9中尝试这一结果。因此,错误"<=对布尔值和int无效“。

正如在其他答案中所建议的那样,您必须使用&& (和)运算符。例如:

代码语言:javascript
复制
if (x <= 51 && x >= 9) {
    //do something
}

正如您在我的答案中所看到的,我使用了“小于”和“大于”,这有助于阅读代码。读起来就好像x小于51,x大于9一样。

希望这有助于解释。

票数 5
EN

Stack Overflow用户

发布于 2016-03-09 19:00:31

使用此代码而不是您的代码修复问题。

代码语言:javascript
复制
51 <= x && x <= 9

您的问题是,第一次比较返回布尔值,然后将其与int值进行比较。这是错误的。

比较是一种二进制操作,从左到右依次处理。

票数 4
EN

Stack Overflow用户

发布于 2016-03-09 19:12:26

在Java中使用来自另一种语言的语法(可能是Python),您需要这样做:

代码语言:javascript
复制
if (51 <= x && x <= 9)

示例

代码语言:javascript
复制
int x = 60;
        if (51 <= x && x <= 9) {
            System.out.println("Let's do something using Java technology.");
        } else {
            System.out.println("Let's");
        }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35900277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档