You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Java中用三元运算符(?:)替代多条件if语句?

解决Java三元运算符替代多条件if时的类型转换问题

你的问题出在误用了三元运算符的返回值类型:如果直接把1或0这类int值赋值给boolean变量z,Java会报错“boolean转int的有损转换”——因为boolean和int是不兼容的基本类型,不能直接转换。

正确的三元写法

原if语句的逻辑是当满足任意一个条件时,z为true,否则保持false,三元运算符的两个分支都应该返回boolean类型,所以直接这样写:

z = (x==15 || y==15 || sum==15 || diff==15) ? true : false;

更简洁的写法

其实条件表达式本身的结果就是boolean类型,完全可以省略三元运算符,直接赋值:

z = x==15 || y==15 || sum==15 || diff==15;

修改后的完整代码

import java.util.Scanner;
public class Ex13 {
  public static void main(String[] args) {
    Scanner e = new Scanner(System.in);
    int x, y, sum, diff;
    boolean z = false;
    System.out.println("Enter x and y");
    x = e.nextInt();
    y = e.nextInt();
    sum = x+y;
    diff = x-y;
    // 用简化写法替代原if语句
    z = x==15 || y==15 || sum==15 || diff==15;
    System.out.println(z);
  }
}

内容的提问来源于stack exchange,提问作者Mohammad Naser

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 17:15:54