Javaの&と&&の違いは何ですか

青灯夜游
リリース: 2023-01-06 15:07:00
オリジナル
8769 人が閲覧しました

Java における & と && の違い: 1. && 演算子が動作するとき、最初の式の値が false の場合、2 番目の式は計算されませんが、& 演算子を使用すると、両方の式が計算されます。最初の式の値が true であるかどうかに関係なく実行されます。 2. & 演算子はビット演算子として使用できますが、&& 演算子は使用できません。

Javaの&と&&の違いは何ですか

#このチュートリアルの動作環境: Windows7 システム、Java8 バージョン、DELL G3 コンピューター。

Java では、&& と & はどちらも「and」、つまり and を表す論理演算子です。両側の式が true で、演算結果全体が true の場合、それらはすべて true となり、それ以外の場合は false になります。続いて記事では両者の違いについて詳しく紹介していきます。

& と &&

& の違い と && は両方とも論理演算子ですが、&& は短絡演算子とも呼ばれます。最初の式の値が false の場合、2 番目の式は評価されないため、

と & は、最初の式が true であるかどうかに関係なく、両方の式を実行します。また、& はビット単位の演算子としても使用でき、& の両側の式がブール型でない場合、& はビット単位の演算を表します。

#&& 操作

int i = 0;        
if(i == 3  && ++i > 0 )
 {
 }
System.out.println("i = " + i);
ログイン後にコピー

結果は次のとおりです:

i = 0
ログイン後にコピー

原因: 2 番目の式は実行されません


#& 操作

 int i = 0;        
 if(i == 3  & ++i > 0 )
  { 
  }
  System.out.println("i = " + i);
ログイン後にコピー
の結果は次のとおりです:
i = 1
ログイン後にコピー

2 番目の式は


を実行します。拡張知識: 論理演算子

論理演算子は、さまざまな演算の関係式を接続して複雑な論理式を形成し、プログラム内の式が真であるかどうか、および決定の結果が真であるかどうかを判断します。または偽。

論理演算子はブール変数を操作し、表 1 に示すように、その結​​果もブールになります。

表 1 論理演算子の使用法、意味、および例

演算子使用法意味説明例結果a&&b##||a||b短絡またはab がすべて false の場合、計算結果は false となり、それ以外の場合は true となります。 2<1||3>4false論理的NOT論理OR論理ロジックと
##&&
短絡と ab がすべて true の場合、計算結果は true、それ以外の場合は false になります。 2>1&&3<4true
##!!a
a が true の場合、値は false、a が false の場合、値は true!(2>4)true |a|b
abがすべて偽の場合、計算結果は偽、それ以外の場合は真です1> ;2| 3>5false&a&b
ab は次のとおりです。どちらも true、計算結果は true、それ以外の場合は false1<2&3<5true || | 違い: a が true の場合、b は計算されません (b の値が何であっても結果は true であるため)
注: 短絡 AND (&&)および短絡 OR (||) 効率を向上させるために最適化された計算方法を採用する機能。実際のプログラミングでは、短絡AND、短絡ORを優先してください。
  • 結果がブール型である変数または式は、論理演算子を使用して論理式に結合できます。論理演算子 &&、||、および !表 2 に従って論理演算を実行します。

    #表 2 論理演算子を使用して論理演算を実行する

a

ba ||b##truetruetruetruefalse truefalse##false
a&&b
!a
#falsetruefalsetrue
truefalsefalsetrue
falsefalsefalsetrue

逻辑运算符的优先级为:!运算级别最高,&& 运算高于 || 运算。!运算符的优先级高于算术运算符,而 && 和 || 运算则低于关系运算符。结合方向是:逻辑非(单目运算符)具有右结合性,逻辑与和逻辑或(双目运算符)具有左结合性。

下面是一些使用逻辑运算符的示例。

x>0 && x<=100    // 第一行语句
y%4==0 || y%3==0    // 第二行语句
!(x>y)    // 第三行语句
ログイン後にコピー

其中,第一行语句用于判断 x 的值是否大于 0 且小于或等于 100,只有两个条件同时成立结果才为真(true)。第二行语句用于判断 y 的值是否能被 4 或者 3 整除,只要有一个条件成立,结果就为真(true)。第三行语句先比较 x 和 y,再将比较结果取反,即如果 x 大于 y 成立,则结果为假(false),否则为真(true)。

更多编程相关知识,请访问:编程教学!!

以上がJavaの&と&&の違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート