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日

悬赏问题

  • ¥20 我要一个分身加定位两个功能的安卓app
  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥100 求采集电商背景音乐的方法
  • ¥15 数学建模竞赛求指导帮助
  • ¥15 STM32控制MAX7219问题求解答