使用带有int和boolean的Ternary运算符时出错

时间:2014-05-21 03:13:32

标签: java ternary

你能帮我理解我在做错的地方。 我在做初学者java材料的同时讨论这个问题。

问题: - 显示如何使用?重写此序列?操作者 if(x <0)y = 10;否则y = 20;

答案: - x&lt; 0? y = 10:y = 20;

但是,当我尝试执行相同操作时,我收到了错误

public class Ternary {
public static void main(String[] args) {
    int result, x, y;
    result = x < 0 ? y =10 : y =20;
    System.out.println(result);
    }

}

结果出错: - 此行有多个标记      - 不兼容的条件操作数类型int和      布尔      - 令牌上的语法错误&#34; =&#34;,!=期望

2 个答案:

答案 0 :(得分:1)

当您使用三元运算符时,您将最左侧的变量分配给条件的结果。换句话说,你只需要两个变量(我将使用结果和x)。

所以代码应该是:

result = x&lt; 0? 10:20;

如果x&lt;

这将设置结果= 10。 0其他结果将是20!

答案 1 :(得分:0)

替换这样的代码。它会起作用。

public static void main(String[] args) {
    int result, y;
    int x = -1;
    // Next try with int x = 1;
    result = x < 0 ? (y = 10) : (y = 20);
    System.out.println(result);
}