if文の末尾のセミコロン
2023-08-24 19:23:15
質問
今日、30分ほどバグを探した結果、以下のようにコードではなく、if文の後にセミコロンを置くことが可能であることを発見しました。
if(a == b);
// Do stuff
ということは、基本的に、その内容は、以下のいずれかになります。
a
が等しいかどうか
b
になるかどうか、そして
if
ステートメントには何の意味もありません。なぜJavaは私にエラーを与えないのでしょうか?これが役に立つような状況はあるのでしょうか?
どのように解決するのですか?
なぜそれが起こるのですか?
Java言語仕様 にはこう書かれています。
空の声明
空のステートメントは何もしません。
EmptyStatement: ;
空のステートメントの実行は常に正常に完了します。
本来は、a==bの場合にempty statementを実行したい、という意味です。
if(a == b);
どうすればいいのでしょう。
この問題の解決方法は主に2つあります。
-
コードフォーマッタを使用することで、空のステートメントによる問題を回避することができます。 で囲むことで問題を回避できます。
if
で囲みます。{
と}
. このようにすることで 空の文はより読みやすくなります。if(a == b){ ; }
-
などの静的コード解析に使用されるツールも確認することができます。
今回のような問題を即座に浮き彫りにすることができるのです。
私は、両方のソリューションを組み合わせることをお勧めします。
関連
-
スレッド "main" での例外 java.lang.ArrayIndexOutOfBoundsException:5 エラー
-
ajax コミット リソースの読み込みに失敗しました: サーバーはステータス 400 で応答しました ()
-
Javaジェネリックを1つの記事で
-
BindException: アドレスはすでに使用中です:バインドエラー解決
-
Java基礎編 - オブジェクト指向
-
CAS 5.1.8でhttpをサポートし、認証されていない認可サービスエラーのプロンプトが表示される問題を解決した。
-
[解決済み] Stringでswitch文が使えないのはなぜですか?
-
[解決済み] Pythonのif文における&&(論理和)に相当する機能
-
[解決済み] AngularJS テンプレートにおける if else ステートメント
-
[解決済み] 印刷用のインラインif文の書き方は?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
Eclipseは、ポップアップA Java Exception has occurred.を実行し、エラーException in threadの解決策を報告します。
-
undefined[sonar] sonar:デフォルトのスキャンルール
-
java.sql.SQLException: executeQuery()でデータ操作文を発行できません。
-
強制型変換について
-
Java appears タイプEを囲むインスタンスがアクセスできない。
-
春ブート複数のデータソースの管理(atomikos)同じサーバーホスト上の複数のプロジェクトを開始する複数のJava - jarのエラーソリューション
-
Spring Bootは、Tomcatの組み込みのmaxPostSizeの値を設定します。
-
htmlとwordの相互変換の実装(画像あり)
-
ApiModel と @ApiModelProperty の使用法
-
swagger2 モデルが表示されない モデルが見つからない @ApiModel アノテーションが表示されない問題