【问题标题】:Visualize Ternary operator [duplicate]可视化三元运算符[重复]
【发布时间】:2018-08-12 21:39:45
【问题描述】:

谁能解释一下这行代码

int num1;
int num2;
int num3;
int largest = ( (num1 > num2) ? ( (num1 > num3) ? num1 : num3) : ((num2 > num3) ? num2 : num3));

在 IF-Else 语句中,以便我理解

【问题讨论】:

  • 它试图找出3个数字中最大的数字。
  • 请在投票前告诉我问题有什么问题
  • 不是downvoter,但在这样一个非常简单的问题中,展示一些研究工作是件好事。试着自己把它写成 if-else 阶梯。将其写入问题以供其他人验证。
  • 您应该在发布之前进行认真的研究。你已经知道谷歌的术语。但很明显,您更愿意在这里转储一些不完整的代码,让我们解释一些您可以在任何好书或教程中阅读的内容。如前所述:您显示的代码不完整。它什么都不做——因为写在这里,它甚至不会编译。当你有“不工作”的代码时,然后提出一个真正的minimal reproducible example。然后:是什么阻止您运行该代码来弄清楚它在做什么?!
  • 规则help center 中列出。如前所述:尝试首先将您的搜索词放入搜索引擎。 “java 三元运算符”为您提供了大量的好资源。请理解,这个社区不能替代您(首先)尝试自己解决问题。

标签: java operators ternary-operator


【解决方案1】:

这个

int largest = ( (num1 > num2) ? ( (num1 > num3) ? num1 : num3) : ((num2 > num3) ? num2 : num3));

等价于

int largest;
if (num1 > num2) {
    if (num1 > num3) {
       largest = num1;
    } else {
       largest = num3;
    }
} else {
    if (num2 > num3) {
       largest = num2;
    } else {
       largest = num3;
    }
}

虽然它可以更简单地实现:

int largest = Math.max(num1, Math.max(num2, num3));

【讨论】:

  • 感谢您的回答 idk 为什么人们拒绝投票我的问题,如果他们继续这样做,我会因为询问更多而被阻止
  • 是的。除了我们不知道 num1、num2、num3 来自哪里。
  • @GhostCat 我只是在问 int large 发生了什么问题 首先阅读问题标题
  • 没有。您要求我们查看您的代码并为您进行翻译,您可以在 5 分钟的研究后轻松完成。
猜你喜欢
  • 2011-09-11
  • 2019-07-14
  • 2011-05-05
  • 2014-09-29
  • 2014-04-20
  • 1970-01-01
  • 2021-04-14
  • 2015-09-27
  • 2016-02-13
相关资源
最近更新 更多