[解決済み] IF文の&&(AND)と|OR|(OR)
2022-03-05 07:36:17
質問
次のようなコードがあります。
if(!partialHits.get(req_nr).containsKey(z) || partialHits.get(req_nr).get(z) < tmpmap.get(z)){
partialHits.get(z).put(z, tmpmap.get(z));
}
ここで
partialHits
はHashMapです。
最初の文が真である場合、何が起こるか?
Javaは2番目のステートメントもチェックするのでしょうか?
なぜなら、最初のステートメントが真であるためには、HashMapに与えられたキーが含まれていてはならないからです。したがって、2番目のステートメントをチェックすると
NullPointerException
.
つまり、簡単に言うと、次のようなコードがあるとします。
if(a && b)
if(a || b)
は、Javaがチェックする
b
もし
a
が偽の場合、そして
a
は、2番目のケースで真になるのでしょうか?
どのように解決するのですか?
いいえ、評価されません。そして、これはとても便利なことです。例えば、Stringがnullやemptyでないかどうかをテストする必要がある場合、次のように書くことができます。
if (str != null && !str.isEmpty()) {
doSomethingWith(str.charAt(0));
}
または、その逆
if (str == null || str.isEmpty()) {
complainAboutUnusableString();
} else {
doSomethingWith(str.charAt(0));
}
もしJavaに「短絡回路」がなかったら、上記のコードの行でたくさんのNullPointerExceptionを受け取っていたことでしょう。
関連
-
[解決済み] 環境変数JAVA_OPTSの使い方を教えてください。
-
[解決済み] Cloneable throws CloneNotSupportedException
-
[解決済み] Javaにおけるシンボリック参照
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] serialVersionUIDとは何ですか、またなぜそれを使用する必要がありますか?
-
[解決済み] リフレクションとは何か、なぜ有用なのか?
-
[解決済み] Javaで配列を宣言し、初期化する方法は?
-
[解決済み] Mapを実装し、挿入順序を保持するJavaクラス?
-
[解決済み] HashMap - First Key 値の取得
最新
-
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 デフォルトのフォント名
-
[解決済み] なぜJPAには@Transientアノテーションがあるのですか?
-
[解決済み] Java UnknownFormatConversionException
-
[解決済み] Eclipse- Dynamic Web Module 3.0 で新しいプロジェクトを作成するときに Java 1.6 以降が必要なエラーが発生する。
-
[解決済み] javascriptでExpression言語を使うには?
-
[解決済み] Java- <T extends Comparable<T>>の意味?
-
[解決済み] 文字列が一意な文字であるかどうかを判定する
-
[解決済み] init-paramとcontext-param
-
[解決済み] ヘッドリカーシオンとテールリカーシオンの違い [重複]について
-
[解決済み] x--やx++はここで何をするのですか?