当前位置: 首页 > 知识库问答 >
问题:

三元运算符 Java [复制]

郏志学
2023-03-14

有没有办法用三元运算来实现这个。我对三进制很陌生,也许你可以指导我。

if(selection.toLowerCase().equals("produkt"))
     cmdCse.setVisible(true);
else
     cmdCse.setVisible(false);

这个好像不行。

selection.toLowerCase().equals("produkt")?cmdCse.setVisible(true):cmdCse.setVisible(false);

共有3个答案

轩辕实
2023-03-14

三元运算符与if语句不完全相同。三元运算符必须从两边“返回”一些东西,所以在那里调用setVisible()这样的void方法是行不通的。

相反,您可以在完全不使用三元运算符的情况下这样做:

cmdCse.setVisible(selection.toLowerCase().equals("product"));

但是为了证明这一点,三进制的等价形式应该是这样的:

cmdCse.setVisible(selection.toLowerCase().equals("product") ? true : false);

请注意,现在三元运算符如何在两边“返回”true或false,而不是简单地调用void方法。

连时铭
2023-03-14

也许

cmdCse.setVisible(selection.toLowerCase().equals("produkt"));
蔡默
2023-03-14

在这种情况下,您甚至不需要三元运算符:

 cmdCse.setVisible(selection.toLowerCase().equals("produkt"));

或者,清洁工:

 cmdCse.setVisible(selection.equalsIgnoreCase("produkt"));

您的版本:

selection.toLowerCase().equals("produkt")? cmdCse.setVisible(true): cmdCse.setVisible(false);

语义不正确:三元运算符应该表示替代赋值,它不是 if 语句的完全替换。没关系:

double wow = x > y? Math.sqrt(y): x;

因为您是根据条件将< code>x或< code>Math.sqrt(y)赋给< code>wow。

我的2个建议:只有当三元运算符能使你的程序更清晰时,才使用它,否则你会得到一些难以理解的一行程序。

 类似资料:
  • 问题内容: 是否可以更改此: …对三元运算符? 问题答案: 好吧,中的行为就像这样…… …另一种看待它的方式… 你的问题有点含糊,我们必须在这里假设。 如果(且仅当)声明了一个返回值(,等。)-现在看来似乎没有做到这一点通过你的代码-那么你可以做到这一点… 如果callFunction(…)不返回值,那么你将无法使用三元运算符!就那么简单。你将使用不需要的东西。 请发布更多代码以清除所有问题 尽管

  • 问题内容: 有人可以解释为什么这样的代码吗? 产生以下编译器错误: 不兼容的条件操作数类型ArrayList和HashSet 由于我不明白的原因,以下内容解决了该问题 我正在使用Java 1.4。 问题答案: 这是1.4 中的 错误 ,并已根据bugreport 5080917 进行了修复。 评估 这是一个错误。 xxxxx @ xxxxx 2004-07-30

  • 条件(三元)运算符是 JavaScript 仅有的使用三个操作数的运算符。一个条件后面会跟一个问号(?),如果条件为 truthy ,则问号后面的表达式A将会执行;表达式A后面跟着一个冒号(:),如果条件为 falsy ,则冒号后面的表达式B将会执行。本运算符经常作为 if 语句的简捷形式来使用。(MDN) 三元运算符,也称条件运算符、三目运算符。 三元运算符可以代替简单的 if 语句。 1. 语

  • 问题内容: 是否可以在Python中一行执行此操作? 我已经尝试过三元运算符: 但是我的IDE(MyEclipse)不喜欢它,没有一个。 问题答案: 是的,您可以这样做: 如果为假,则短路将开始,并且右侧将不被评估。如果为true,则将评估右侧并添加元素。 我只是指出,执行上述操作是完全非Python的,无论如何,最好编写此代码: 示范:

  • 问题内容: 您能否解释一下为什么使用第一个返回类型无法编译代码?消息是:。 在第二种情况下是否插入了显式强制转换? 问题答案: 由于类型推断规则。我不知道为什么要 这么做 (您应该检查JSL 的三元运算符部分),但是看来三元表达式不能从返回类型推断出类型参数。 换句话说,三元表达式的类型取决于其操作数的类型。但是其中一个操作数的类型参数()不确定。那时三元表达式仍然没有类型,因此它不会影响类型参数

  • 以下是关于的几个主题: 三元算子-Java 除此之外,我不懂语法。 我有一个带有和的方法。 三元运算符的语法为 我试过这个: 我有一个错误消息=>