ホームページ  >  記事  >  Java  >  Javaの演算子とは何ですか?

Javaの演算子とは何ですか?

青灯夜游
青灯夜游オリジナル
2019-12-30 17:26:295113ブラウズ

Javaの演算子とは何ですか?

Java の演算子は、算術演算子、関係演算子、論理演算子、ビット単位演算子の 4 つのカテゴリに分類できます。

算術演算子

Java の算術演算子は、単項演算子と二項演算子に分類されます。単項演算子にはオペランドが 1 つだけありますが、二項演算子には 2 つのオペランドがあり、演算子は 2 つのオペランドの間に配置されます。算術演算子のオペランドは数値型である必要があります。

1. 単項演算子:

単項演算子は次のとおりです: 正 ( )、負 (-)、プラス 1 ( )、マイナス 1 (--) 4 個。

加算 1 および減算 1 演算子は、数値型変数にのみ使用でき、式では使用できません。プラス 1 演算子とマイナス 1 演算子は、変数の前 (++i など) または変数の後に (i++ など) 配置できます。この 2 つの違いは、変数の前に配置した場合 (++i など)、変数値が最初に 1 加算または 1 減算され、その後、他の対応する演算 (主に代入演算) が実行されます。変数の後に配置された場合 (i++ など)、他の対応する演算が最初に実行されてから、変数値が加算されます。 1を引いたもの。

例:

int i=6,j,k,m,n;
j = +i;//取原值,即j=6
k = -i;//取负值,即k=-6
m = i++;//先m=i,再i=i+1,即m=6,i=7
m = ++i;//先i=i+1,再m=i,即i=7,m=7
n = j--;//先n=j,再j=j-1,即n=6,j=5
n = --j;//先j=j-1,再n=j,即j=5,n=5

記述する際にも注意してください。単項演算子とその前後のオペランドの間にはスペースを使用できません。スペースを使用しないと、コンパイル中にエラーが発生します。

2. 二項演算子

二項演算子には、加算 ( )、減算 (-)、乗算 (*)、除算 (/)、フェッチ Remain( %)。このうち、-、*、/ は加算、減算、乗算、除算の四則演算を完了し、% は 2 つのオペランドを除算した余りを求めます。

%剰余演算の例:

a % b = a - (a / b) * b

剰余演算子は、両方のオペランドが整数である場合だけでなく、両方のオペランドが浮動小数点数である場合 (またはオペランドが浮動小数点数である場合) にも使用できます。 )。両方のオペランドが 7.6 % 2.9 などの浮動小数点数の場合、計算結果は 7.6 - 2 * 2.9 = 1.8 となります。

両方のオペランドが int 型の場合、a%b の計算式は次のとおりです。

a % b = a - (int)(a / b) * b

両方のオペランドが long (または他の整数型) の場合、a% の計算式は次のとおりです。 b は類推により推定できます。

2 項演算に関与する 2 つのオペランドのデータ型が異なる場合、結果のデータ型は、より精度の高い (またはより長い桁の) データ型と一致します。

例:

7 / 3 //整数除算、演算結果は 2

7.0 / 3 //除算、演算結果は 2.33333、つまり、結果と精度です。上位の型は一貫しています。

7 % 3 //剰余、演算結果は 1

7.0 % 3 //剰余、演算結果は 1.0

-7 % 3 //剰余、演算結果は -1、つまり演算結果の符号は左のオペランドと同じです

7 % -3 //剰余、演算結果は 1、つまり演算結果の符号は左のオペランドと同じです 数値は同じです

関係演算子

関係演算子は 2 つの値の大きさを比較するために使用され、演算の結果は論理型の数値になります。 6 つの関係演算子があります: 等しい (==)、等しくない (!=)、より大きい (>)、以上 (>=)、未満 (

例:

9

9.9 >= 8.8 //演算結果は true

'A' 6e48ab36212d87e49cb3ab24dfe8640d=1的计算结果为false后,系统马上得出该逻辑表达式的最终计算结果为false,因此,系统不继续判断ic387271006a58240a751d62eb30f84b3>)、左移(0e0c73725f0461daa2f74889ad0d988d>>)。 

位运算的位与(&)、位或(|)、位非(~)、位异或(^)与逻辑运算的相应操作的真值表完全相同,其差别只是位运算操作的操作数和运算结果都是二进制整数,而逻辑运算相应操作的操作数和运算结果都是逻辑值。 

位运算示例

运算符  名称   示例说明 

&   位与x&y 把x和y按位求与

|   位或x|y 把x和y按位求或

~   位非~x  把x按位求非

^   位异或 x^y 把x和y按位求异或

>>  右移x>>y把x的各位右移y位

a3b498cebd6c2c5721c9ea9fbfbb606e>> 右移x>>>y   把x的各位右移y位,左边填0 

举例说明:

1、有如下程序段:

int x = 64;   //x等于二进制数的01000000
int y = 70;   //y等于二进制数的01000110
int z = x&y   //z等于二进制数的01000000

即运算结果为z等于二进制数01000000。位或、位非、位异或的运算方法类同。

2、右移是将一个二进制数按指定移动的位数向右移位,移掉的被丢弃,左边移进的部分或者补0(当该数为正时),或者补1(当该数为负时)。这是因为整数在机器内部采用补码表示法,正数的符号位为0,负数的符号位为1。例如,对于如下程序段:

int x = 70;   //x等于二进制数的01000110
int y = 2;
int z = x>>y  //z等于二进制数的00010001

即运算结果为z等于二进制数00010001,即z等于十进制数17。

对于如下程序段:

int x = -70;  //x等于二进制数的11000110
int y = 2;
int z = x>>y  //z等于二进制数的11101110

即运算结果为z等于二进制数11101110,即z等于十进制数-18。要透彻理解右移和左移操作,读者需要掌握整数机器数的补码表示法。

3、0填充的右移(>>>)是不论被移动数是正数还是负数,左边移进的部分一律补0。 

其他运算符 

1、赋值运算符与其他运算符的简捷使用方式 

赋值运算符可以与二元算术运算符、逻辑运算符和位运算符组合成简捷运算符,从而可以简化一些常用表达式的书写。 

赋值运算符与其他运算符的简捷使用方式

运算符 用法   等价于说明

+= s+=is=s+i s,i是数值型

-= s-=is=s-i s,i是数值型

*= s*=is=s*i s,i是数值型

/= s/=is=s/i s,i是数值型

%= s%=is=s%i s,i是数值型

&= a&=ba=a&b a,b是逻辑型或整型

|= a|=ba=a|b a,b是逻辑型或整型

^= A^=ba=a^b a,b是逻辑型或整型

ba26955435af236af04aa58272198ee2>=s>>=i   s=s>>is,i是整型

>>>=   s>>>=i s=s>>>i   s,i是整型 

2、方括号[]和圆括号()运算符 

方括号[]是数组运算符,方括号[]中的数值是数组的下标,整个表达式就代表数组中该下标所在位置的元素值。

圆括号()运算符用于改变表达式中运算符的优先级。

3、字符串加(+)运算符 

当操作数是字符串时,加(+)运算符用来合并两个字符串;当加(+)运算符的一边是字符串,另一边是数值时,机器将自动将数值转换为字符串,这种情况在输出语句中很常见。如对于如下程序段:

int max = 100;
System.out.println("max = "+max);

计算机屏幕的输出结果为:max = 100,即此时是把变量max中的整数值100转换成字符串100输出的。

4、条件运算符(?:) 

条件运算符(?:)的语法形式为:

<表达式1> ?<表达式2> : <表达式3>

条件运算符的运算方法是:先计算27323b5ed8b44e0a297ecdb3b75fdcb7的值,当27323b5ed8b44e0a297ecdb3b75fdcb7的值为true时,则将47412bb27b333d7ef9616246112cd095的值作为整个表达式的值;当27323b5ed8b44e0a297ecdb3b75fdcb7的值为false时,则将724757b3a0af45ea06676406dc49b26a的值作为整个表达式的值。如:

int a=1,b=2,max;
max = a>b?a:b;   //max等于2

5、强制类型转换符

强制类型转换符能将一个表达式的类型强制转换为某一指定数据类型,其语法形式为:

(<类型>)<表达式>

6、对象运算符instanceof 

对象运算符instanceof用来测试一个指定对象是否是指定类(或它的子类)的实例,若是则返回true,否则返回false。

7、点运算符 

点运算符“.”的功能有两个:一是引用类中成员,二是指示包的层次等级。 

运算符的优先级 

以下按优先级从高到低的次序列出Java语言中的所有运算符,表中结合性一列中的“左右”表示其运算次序为从左向右,“右左”表示其运算次序为从右向左。

优先级 运算符 结合性 

1   .  []  ()  ;  , 

2   ++  ――  +=  !  ~  +(一元) -(一元)  右左

3   *  /  %  左右

4   +(二元)  -(二元)  左右

5   9bfa42134ac435362733abbb2296c9ff>  >>>  左右

6   377520d3212f646022f09a9470e4b397  c8641a367e3336f63c920347c30ba2c5=  instanceof 左右

7   = =  !=  左右

8   &左右

9   ^左右

10  |左右

11  &&   左右

12  ||   左右

13  ?:  右左

14  =  *=  /=  %=  +=  -=  =  >>>=  &=  ^=  |=   右左

推荐学习:Java视频教程

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。