Javaの演算子
コンピュータの最も基本的な使用の一つは、コンピュータ言語として、Javaの変数を操作するオペレータの豊富なセットを提供し、数学演算を実行することです。私たちは、次のグループにオペレータを置くことができます。
- 算術演算子
- 関係演算子
- ビット演算子
- 論理演算子
- 代入演算子
- その他の演算子
まず、算術演算子
数学のような算術演算子の役割と機能。
演算子 | 説明 |
---|---|
+ | 追加 |
- | 引き算 |
* | 乗算 |
/ | 除算 |
% | 剰余(余り) |
++ | 自己増力 - オペランドの値が1だけインクリメントされ |
- | オペランドの値を減少させる1 - デクリメント |
例:
public class Test {
public static void main(String args[]) {
int a = 10;
int b = 20;
int c = 25;
int d = 25;
System.out.println("a + b = " + (a + b) );
System.out.println("a - b = " + (a - b) );
System.out.println("a * b = " + (a * b) );
System.out.println("b / a = " + (b / a) );
System.out.println("b % a = " + (b % a) );
System.out.println("c % a = " + (c % a) );
System.out.println("a++ = " + (a++) );
System.out.println("a-- = " + (a--) );
// 查看 d++ 与 ++d 的不同
System.out.println("d++ = " + (d++) );
System.out.println("++d = " + (++d) );
}
}
---结果:
a + b = 30
a - b = -10
a * b = 200
b / a = 2
b % a = 0
c % a = 5
a++ = 10
a-- = 11
d++ = 25
++d = 27
第二に、関係演算子
演算子 | 説明 |
---|---|
== | 二つのオペランドの値が等しい場合、それは同等の条件が真です。 |
!= | オペランドの値が等しくない場合、等しくない条件が真です。 |
> | 左オペランドの値が右のオペランドの値よりも大きい場合には、条件が真です。 |
< | 左オペランドの値が右のオペランドの値よりも小さい場合、条件が真です。 |
> = | 左オペランドの値がより大きいか右のオペランドに等しい場合、条件は真です。 |
<= | 左オペランドの値が以下右オペランドに等しい場合、条件は真です。 |
例:
public class Test {
public static void main(String args[]) {
int a = 10;
int b = 20;
System.out.println("a == b = " + (a == b) );
System.out.println("a != b = " + (a != b) );
System.out.println("a > b = " + (a > b) );
System.out.println("a < b = " + (a < b) );
System.out.println("b >= a = " + (b >= a) );
System.out.println("b <= a = " + (b <= a) );
}
}
---结果:
a == b = false
a != b = true
a > b = false
a < b = true
b >= a = true
b <= a = false
第三に、ビット演算子
演算子 | 説明 | 例 |
---|---|---|
& | ビット単位のAND演算子、もしこのビットは、結果が1である場合にのみ、両方のオペランドのビットが非ゼロである場合のみ。 | (A&B)、12を与える、すなわち、0000 1100 |
| | ビット単位OR演算子、このビットが1に設定されているときに、2つのオペランドのビットが非ゼロ結果を有する限り。 | (A | B)、0011、すなわち、61与えます |
一般的に使用されていません。
演算子 | 説明 | 例 |
---|---|---|
^ | ビット単位のXOR演算、二つのオペランドのビットは、ビットが1に設定されているのと同じ結果ではありません。 | (A ^ B)、すなわち、49 00110001を与えます |
〜 | ビット単位の補数演算子は、すべてのオペランドを反転しました。 | (〜A)-61 11000011、即ち、得られました |
<< | ビット単位のシフト演算子を残しました。ビット単位の左オペランド右オペランド指定した桁数を残しました。 | 240を与えるために、A << 2、即ち1111万 |
>> | 右シフト演算をビット単位。右オペランドのビットの左オペランドは、数字の右の数を指定します。 | すなわち、15 A >> 2 1111得ます |
>>> | ゼロパディングは右シフト演算子ビット。オペランド右右移動得られた空孔で指定された左オペランドの中央値は、ゼロで充填されています。 | すなわち、2 0000 1111 >>> 15 Aを得ます |
例:**
public class Test {
public static void main(String args[]) {
int a = 60; /* 60 = 0011 1100 */
int b = 13; /* 13 = 0000 1101 */
int c = 0;
c = a & b; /* 12 = 0000 1100 */
System.out.println("a & b = " + c );
c = a | b; /* 61 = 0011 1101 */
System.out.println("a | b = " + c );
}
}
---结果:
a & b = 12
a | b = 61
第四に、論理演算子
と
条件1つの条件1 | 条件2条件2 | 値 |
---|---|---|
1 | 1 | 1 |
1 | 0 | 0 |
0 | 1 | 0 |
0 | 0 | 0 |
若しくは
条件1つの条件1 | 条件2条件2 | 値 |
---|---|---|
1 | 1 | 1 |
1 | 0 | 1 |
0 | 1 | 1 |
0 | 0 | 0 |
非
条件1つの条件1 | 値 |
---|---|
1 | 0 |
0 | 1 |
public class Test {
public static void main(String args[]) {
boolean a = true;
boolean b = false;
System.out.println("a && b = " + (a&&b));
System.out.println("a || b = " + (a||b) );
System.out.println("!(a && b) = " + !(a && b));
}
}
---结果:
a && b = false
a || b = true
!(a && b) = true
|の違いと||、&と&&
論理演算子は表明しています
左のオペレータが&& falseの短絡、右誤動作の直接の結果の真偽を判断するために継続しない必要はありません
||演算結果を続行されません短絡オペレータ真の左右両端ノーさらに操作が真であります
第五に、代入演算子
演算子 | 説明 |
---|---|
= | 単純な代入演算子、左のオペランドに割り当てられ、右オペランドの値 |
+ = | 添加し、代入演算子、および左オペランド右オペランドが左のオペランド加算に割り当てられているました |
- = | 左と右のオペランド減算は左オペランドに割り当てられたオペランドことを保存して代入演算子 |
* = | そして代入演算子は、それによって、左右のオペランドの乗算は、オペランド左オペランドに割り当てられました |
/ = | 左と右のオペランドのオペランド部門は、左のオペランドに割り当てられたことを除いて、代入演算子 |
(%)= | そして、左右のオペランドのオペランド左オペランドを法に割り当てられていることを代入剰余演算子 |
一般的に使用されていません。
演算子 | 説明 |
---|---|
<< = | 左シフト代入演算子 |
>> = | 右シフト代入演算子 |
&= | ビット単位のAND代入演算子 |
^ = | ビットごとのXOR代入演算子 |
| = | ビットごとのOR代入演算子 |
public class Test {
public static void main(String args[]) {
int a = 10;
int b = 20;
int c = 0;
c = a + b;
System.out.println("c = a + b = " + c );
c += a ;
System.out.println("c += a = " + c );
c -= a ;
System.out.println("c -= a = " + c );
c *= a ;
System.out.println("c *= a = " + c );
a = 10;
c = 15;
c /= a ;
System.out.println("c /= a = " + c );
a = 10;
c = 15;
c %= a ;
System.out.println("c %= a = " + c );
}
}
---结果:
c = a + b = 30
c += a = 40
c -= a = 30
c *= a = 300
c /= a = 1
c %= a = 5
第六に、条件演算子(?:)
条件演算子は、三項演算子と呼ばれています。オペレータは、3つのオペランドを持っており、ブール式を決定する必要があります。
条件?結果1:2つの結果。
条件の結果は、ブール真、偽でなければなりません。
public class Test {
public static void main(String args[]){
int a , b;
a = 10;
b = (a == 1) ? 20: 30;
System.out.println( "Value of b is : " + b );
}
}
---结果:
Value of b is : 30
条件が複雑になることがあります
boolean conditionOne = 5>3;
boolean conditionTwo = 5>2;
boolean conditionThree = 5>3;
int num = (conditionOne && (conditionTwo || conditionThree)) ? 1 : 2;
七、演算子の優先順位
私は、簡潔な式を書き込もうとしました:
単眼関係の乗算、除算、譲渡後の論理三眼。
単眼:単項+ - (マイナス)++ -のような
乗算および除算:算術単項* /%+ -
である。変位単項演算子<< >>
関係:単項> <> = <!= == =
論理:論理単項&| ^ && ||!
三眼:単項A三眼>:Y B X?
の後:無意味、港区の言葉だけのために
割り当て:割り当て=