当前位置: 首页 > 面试题库 >

简短的IF-ELSE声明

濮赤岩
2023-03-14
问题内容

我试图使代码更具可读性,所以我决定使用一些简短的IF语句。

这是我的无效代码(“不是声明”):

jXPanel6.isVisible() ? jXPanel6.setVisible(true) : jXPanel6.setVisible(false);

这怎么了 需要括号吗?哪里?


问题答案:

“三元表达式” x ? y : z只能用于条件 赋值 。也就是说,您可以执行以下操作:

String mood = inProfit() ? "happy" : "sad";

因为三元表达式返回的东西(String在此示例中为类型)。

它并不是真的打算用作短的,在线的if- else。特别是,如果各个部分不返回值或返回不兼容类型的值,则不能使用它。(因此,如果两个方法都碰巧返回相同的值,则可以执行此操作,但 不应
仅出于副作用目的调用它)。

因此,执行此操作的正确方法只是使用if-else块:

if (jXPanel6.isVisible()) {
    jXPanel6.setVisible(true);
}
else {
    jXPanel6.setVisible(false);
}

当然可以缩短到

jXPanel6.setVisible(jXPanel6.isVisible());

对我而言,后两种表达方式更具可读性,因为它们可以更清楚地传达您正在尝试执行的操作。(顺便说一句,您是否以错误的方式获得了您的条件?无论如何,这看起来像是无操作,而不是拨动开关)。

不要把 字符数少可读性 混在一起。关键是最容易理解的东西。并轻度滥用语言功能是迷惑读者的一种明确方法,或者至少使他们产生了心理上的双重误读。



 类似资料:
  • if语句后面可以跟一个else if...else语句,这对于使用单个if ... else if语句测试各种条件非常有用。 当使用if, else if, else语句时,要记住几点。 一个if可以有零个或一个else的,它必须在任何其他if之后。 一个if可以有零到多个else if是,他们必须在其他之前。 一旦else if成功, else if任何其他else if else不会被测试。

  • if语句构造可以有一个或多个可选的else-if构造。 当if条件失败时,紧接着执行else-if 。 当else-if也失败时,执行其后继else-if语句(如果有的话),依此类推。 可选的else放在最后,当上述任何条件都不成立时执行。 所有其他语句(else-if和else)都是可选的。 else-if可以使用一次或多次。 else必须始终放在构造的末尾,并且只能出现一次。 语法 (Synt

  • if后面可以跟一个可选的else块。 如果if测试的布尔表达式求值为false,则执行else块。 以下是语法。 if(boolean_expression) { // statement(s) will execute if the Boolean expression is true } else { // statement(s) will execute if th

  • if后面可以跟一个可选的else块。 if块测试的布尔表达式求值为false, if执行else块。 以下是语法。 if(boolean_expression){ // statement(s) will execute if the Boolean expression is true. } else { // statement(s) will execute if the

  • 我们将看到的下一个决策声明是if/else语句。 本声明的一般形式是 - if(condition) { statement #1 statement #2 ... } else{ statement #3 statement #4 } 该陈述的一般工作是首先在if语句中评估条件。 如果条件为真,则它然后执行语句并在else条件之前停止并退出循环。

  • 问题内容: 我正在寻找一种缩短此代码并避免重复代码和if语句的方法。我正在做的是创建一个计算器,该计算器在字符串中搜索运算符“ * / +-”并相应地执行它们。有任何想法吗? 另外,是否有解决方案来接受带有两个以上操作数的字符串?即5 + 10 * 2/3 问题答案: 要更改代码,可以使用switch语句,并将一些冗余代码放在开关之前或之后。