空のelse-if文はなぜスタイルが悪いのか、どう書き直せばいいのか?
2023-09-27 19:33:50
質問
私のコードを自動的に採点するプログラムが、コードを実行しない else-if に対して "style-points" をドッキングさせています。それはエラーを引き起こすかもしれないと言いますが、私はそれができるとは思いません。
ルールを破ることなく動作するように、どのように変更すればよいかわかりません。なぜこのようにすることが悪い形式なのでしょうか。他の書き方では、読者が理解するのが難しくなると思います。代わりにどのように書くべきでしょうか?
if (! seesWater(LEFT))
{
turn(LEFT);
}
else if (! seesWater(AHEAD));
else if (! seesWater(RIGHT))
{
turn(RIGHT);
}
else
{
turn180();
}
else-ifがあるのに何もしないのは、コードが動作するための優先順位のためです。
if (! seesWater(AHEAD))
そして、残りの条件は重要ではないので、まったく実行されたくありません。
どのように解決するのですか?
誰が「スタイルが悪い」と言ったのですか?
質問すべきは、これが他の方法よりも明確であるかどうかということです。 あなたの特定のケースでは、私はそうだと思います。 このコードは 4 つのオプションの間の選択を明確に表現しており、そのうちの 1 つは「何もしない」です。
私が行う唯一の変更は、かなり重要でないセミコロンを空の中括弧のペアで置き換えることです。
if (! seesWater(LEFT)) {
turn(LEFT);
}
else if (! seesWater(AHEAD)) {
// nothing required
}
else if (! seesWater(RIGHT)) {
turn(RIGHT);
}
else {
turn180();
}
これは一般的に受け入れられるスタイルとして「空文節」を推奨しているわけではありません。単に、ケースはそのメリットに基づいて議論されるべきであり、従わなければならないルールに基づいて議論されるべきではないということです。 それはセンスを磨く問題であり、センスの判断は人間のためにあるのであって、頭の悪いオートマタのためにあるのではありません。
関連
-
[解決済み】Javaセキュリティ。不正なキーサイズまたはデフォルトのパラメータ?
-
Javaでよくある構文エラー
-
Java の switch case 文で必要な定数式の問題の解決法
-
ブートレイヤーの初期化中にエラーが発生しました java.lang.module.FindException: モジュールが見つかりません
-
Spring Bootは、Tomcatの組み込みのmaxPostSizeの値を設定します。
-
[解決済み] serialVersionUIDとは何ですか、またなぜそれを使用する必要がありますか?
-
[解決済み] ThreadLocal変数はいつ、どのように使用すればよいですか?
-
[解決済み] なぜpythonはforやwhileループの後に'else'を使うのですか?
-
[解決済み] Java の import 文でワイルドカードを使用することは、なぜ悪いのですか?
-
[解決済み] JUnit 4で条件付きでテストを無視する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
NullPointerException - java.lang.
-
Springの設定でxsdファイルのバージョン番号を設定しない方が良い理由
-
SLF4J: クラス・パスに複数のSLF4Jバインディングが含まれています。
-
ApplicationContextの起動エラーです。条件レポートを表示するには、アプリケーションを'de'で再実行します。
-
Uncaught ReferenceError: は定義されていません。
-
無効なメソッド宣言
-
アノテーション「@Retention」の役割
-
X11 DISPLAY変数が設定されていない」問題の解決方法
-
Javaがリソースリークに遭遇した:'input'が閉じない 解決方法
-
1分でわかる!恋人の写真をIDEAの背景画像に設定する方法【おすすめ集