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 如何在visual studio 2022中添加ImageMagick库
  • ¥50 如何实现uniapp编译的微信小程序做可回溯视频
  • ¥15 求Houdini使用行家,付费。价格面议。
  • ¥15 前端高拍仪调用问题报错
  • ¥15 想用octave解决这个数学问题
  • ¥15 Centos新建的临时ip无法上网,如何解决?
  • ¥15 海康威视如何实现客户端软件对设备语音请求的处理。
  • ¥15 支付宝h5参数如何实现跳转
  • ¥15 MATLAB代码补全插值
  • ¥15 Typegoose 中如何使用 arrayFilters 筛选并更新深度嵌套的子文档数组信息