English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
javaの&と&&の違い:&はビット演算子であり論理演算子でもあり、&の両側はintまたはboolean式であってよいです。intの両側が&の場合、演算子の両側の数を二進数に変換してから演算を行いますが、ショートカット論理演算子(&&)の両側は布尔式でなければなりません。
多くの人がJavaを学ぶ際や面接で直面することが多いでしょう
&および&&
しかし、彼らの意味を本当に理解していない場合、これはあなたの思考に大きな困難をもたらします
このブログを読み終わった後、あなたは彼らを簡単に区別することができることに気づくでしょう
以下は私のデモです
/**
*
*/
package com.b510.test;
/**
* @author Jone Hongten
* @create date:2013-11-2
* @version 1.0
*/
public class Test {
public static void main(String[] args) {
String str = null;
if(str != null && !"".equals(str)){
//do something
}
if(str != null & !"".equals(str)){
//do something
}
}
}
私たちが少し曖昧な場合、&と&&の電気回路問題を見てみましょう:
対象:&&
if(str != null && !"".equals(str))
str != nullの場合、次に「!"".equals(str)」を実行します:
str != nullがfalseの場合、この時点でプログラムは短絡状態にあり、その場合、「!"".equals(str)」は実行されません。
しかし、&に対して:
if(str != null & !"".equals(str))
str != nullの結果に関わらず(つまりtrue、false)、プログラムは「!"".equals(str)」を実行します:
電気回路問題の要約:
対象:& -- > どんな場合でも、「&」の左右両側のプログラムは実行されます。
対象:&& -- > 左側の「&&」が真(true)である場合にのみ、右側の「&&」が実行されます。
次に、演算規則について説明します:
対象:& -- > 左右どちらかがfalseの場合、結果はfalseとなります;すべてがtrueの場合、結果はtrueとなります
対象:&& -- > 左側がfalseの場合、結果はfalseとなります;左側がtrueで右側もtrueの場合、結果はtrueとなります
ご読読ありがとうございます、皆様のサポートに感謝します!