weixin_62375656 2022-01-20 11:53 采纳率: 55.6%
浏览 59
已结题

Java的三元运算符(?)是只能做赋值操作吗?与C中的三元运算符的区别?

比如C中可以这么写:
1>5 ? printf("1") : printf("5");
可以正常编译运行。

但java好像不允许1>5这个写法,必须用变量来代替,比如:
int a = 1, b = 5; a>b 要这么写,
就算这样写了后,Eclipse会在b下面打红线说不能把int转换为boolean,
也就是说编译器没有把(a>b)这个当boolean,而是把b当成了boolean?
如果用括号括起来(a>b)?System.out.printf("1") : System.out.printf("5");
编译器又报错说让我把括号去掉。
那java的三元运算符是不是并不能完全的当成一个if else来用?好像没法让他进行输出操作?

  • 写回答

4条回答 默认 最新

  • zcl_1991 2022-01-20 13:07
    关注

    System.out.println( 1 > 5 ? "a": "b");

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 1月28日
  • 已采纳回答 1月20日
  • 创建了问题 1月20日

悬赏问题

  • ¥100 在连接内网VPN时,如何同时保持互联网连接
  • ¥15 MATLAB中使用parfor,矩阵Removal的有效索引在parfor循环中受限制
  • ¥20 Win 10 LTSC 1809版本如何无损提升到20H1版本
  • ¥50 win10 LTSC 虚拟键盘不弹出
  • ¥30 关于PHP中POST获取数据的问题
  • ¥30 微信小程序请求失败,网页能正常带锁访问
  • ¥15 Python实现hog特征图可视化
  • ¥30 德飞莱51单片机实现C4炸弹
  • ¥50 CrossLink-LIF-MD6000 型 FPGA 的 CMOS 转 MIPI D-PHY IP 核功能使用异常
  • ¥15 proteus控制16x16LED点阵显示屏的设计