三元运算符Java

三元运算符Java

有没有办法在三元操作中实现这一点。我对这三元知识还很陌生,也许您可以指导我。

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

这似乎无效。

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


守着一只汪
浏览 603回答 3
3回答

慕勒3428872

在这种情况下,您甚至不需要三元运算符: 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;因为你要么分配x或Math.sqrt(y)到wow,根据条件。我的2cents:仅在使程序更清晰时才使用三元运算符,否则最终将得到一些难以理解的单线。

慕容3067478

三元运算符与if语句不完全一样。三元运算符必须从双方“返回”某些内容,因此将像setVisible()这样的void方法调用放在那儿是行不通的。相反,您可以完全不用三元运算符来执行以下操作:cmdCse.setVisible(selection.toLowerCase().equals("product"));但是,为了说明这一点,三元等价物看起来像这样:cmdCse.setVisible(selection.toLowerCase().equals("product") ? true : false);请注意,现在三元运算符如何在两侧“返回”真或假,而不是简单地调用void方法。

四季花海

直接从文档如果使代码更易读,请使用?:运算符而不是if-then-else语句。例如,当表达式紧凑且没有副作用(例如赋值)时。如果您cmdCse.setVisible(true / false);不返回任何内容,并且该操作还具有副作用(它会更改的状态cmdCse),因此此处不能使用条件运算符(当您使用运算符时,?和:分支必须具有相同的返回类型)。顺便说一句,请注意.. ? .. : ..应称为conditional operator
打开App,查看更多内容
随时随地看视频慕课网APP