1. ホーム
  2. java

[解決済み] 短いIF - ELSE文

2023-04-26 01:59:12

質問

私は自分のコードをより読みやすくするために、いくつかの短いIF文を使用することにしました。

以下は、動作しない私のコードです("not a statement")。

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());

後者の表現の方が、何をしようとしているのかがより明確に伝わるので、私としては読みやすいと思います。 (ところで、条件を間違えてしまったのでしょうか? これはトグルではなく、いずれにせよno-opであるように見えます)。

混同しないように 文字数の少なさ 読みやすさ . 重要なのは、最も簡単に理解できることであり、言語特性を軽く誤用することは、読者を混乱させるか、少なくとも精神的に二度手間させる確実な方法です。