2.2 運算符和表達式
2.2.1 運算符
對各種類型的數(shù)據(jù)進行加工的過程成為運算,表示各種不同運算的符號稱為運算符,參與運算的數(shù)據(jù)稱為操作數(shù),按操作數(shù)的數(shù)目來分,可有:
◇ 一元運算符:++,--,+,-
◇ 二元運算符:+,-,>
◇ 三元運算符:?:
基本的運算符按功能劃分,有下面幾類:
1 算術(shù)運算符: +,―,*,/,%,++,――。
例如:
3+2;
a-b;
i++;
--i;
2 關(guān)系運算符: >,<,>=,<=,==,!=。
例如:
count>3;
I==0;
n!=-1;
3 布爾邏輯運算符: !,&&,|| 。
例如:
flag=true;
!(flag);
flag&&false;
4 位運算符: >>,<<,>>>,&,|,^,~。
例如:
a=10011101; b=00111001;則有如下結(jié)果:
a<<3 =11101000;
a>>3 =11110011 a>>>3=00010011;
a&b=00011001; a|b=10111101;
~a=01100010; a^b=10100100;
5 賦值運算符 =,及其擴展賦值運算符如+=,―=,*=,/=等。
例如:
i=3;
i+=3; //等效于i=i+3;
6 條件運算符 ? :
例如:result=(sum= =0 ? 1 : num/sum);
7 其它:
包括分量運算符· ,下標運算符 [],實例運算符instanceof,內(nèi)存分配運算符new,強制類型轉(zhuǎn)換運算符 (類型),方法調(diào)用運算符 () 等。例如:
System.out.println("hello world");
int array1[]=new int[4];
2.2.2 表達式
表達式是由操作數(shù)和運算符按一定的語法形式組成的符號序列。一個常量或一個變量名字是最簡單的表達式,其值即該常量或變量的值;表達式的值還可以用作其他運算的操作數(shù),形成更復(fù)雜的表達式。
1.表達式的類型
表達式的類型由運算以及參與運算的操作數(shù)的類型決定,可以是簡單類型,也可以是復(fù)合類型:
布爾型表達式: x&&y||z;
整型表達式: num1+num2;
2.運算符的優(yōu)先次序
表達式的運算按照運算符的優(yōu)先順序從高到低進行,同級運算符從左到右進行:
優(yōu)先次序 運算符
1 . [] ()
2 ++ -- ! ~ instanceof
3 new (type)
4 * / %
5 + -
6 >> >>> <<
7 > < >= <=
8 = = !=
9 &
10 ^
11 |
12 &&
13 ||
14 ?:
15 = += -= *= /= %= ^=
16 &= |= <<= >>= >>>=
例如,下述條件語句分四步完成:
Result=sum==0?1:num/sum;
第1步:result=sum==0?1:(num/sum)
第2步:result=(sum==0)?1:(num/sum)
第3步:result=((sum==0)?1:(num/sum))
第4步:result=
2.2.1 運算符
對各種類型的數(shù)據(jù)進行加工的過程成為運算,表示各種不同運算的符號稱為運算符,參與運算的數(shù)據(jù)稱為操作數(shù),按操作數(shù)的數(shù)目來分,可有:
◇ 一元運算符:++,--,+,-
◇ 二元運算符:+,-,>
◇ 三元運算符:?:
基本的運算符按功能劃分,有下面幾類:
1 算術(shù)運算符: +,―,*,/,%,++,――。
例如:
3+2;
a-b;
i++;
--i;
2 關(guān)系運算符: >,<,>=,<=,==,!=。
例如:
count>3;
I==0;
n!=-1;
3 布爾邏輯運算符: !,&&,|| 。
例如:
flag=true;
!(flag);
flag&&false;
4 位運算符: >>,<<,>>>,&,|,^,~。
例如:
a=10011101; b=00111001;則有如下結(jié)果:
a<<3 =11101000;
a>>3 =11110011 a>>>3=00010011;
a&b=00011001; a|b=10111101;
~a=01100010; a^b=10100100;
5 賦值運算符 =,及其擴展賦值運算符如+=,―=,*=,/=等。
例如:
i=3;
i+=3; //等效于i=i+3;
6 條件運算符 ? :
例如:result=(sum= =0 ? 1 : num/sum);
7 其它:
包括分量運算符· ,下標運算符 [],實例運算符instanceof,內(nèi)存分配運算符new,強制類型轉(zhuǎn)換運算符 (類型),方法調(diào)用運算符 () 等。例如:
System.out.println("hello world");
int array1[]=new int[4];
2.2.2 表達式
表達式是由操作數(shù)和運算符按一定的語法形式組成的符號序列。一個常量或一個變量名字是最簡單的表達式,其值即該常量或變量的值;表達式的值還可以用作其他運算的操作數(shù),形成更復(fù)雜的表達式。
1.表達式的類型
表達式的類型由運算以及參與運算的操作數(shù)的類型決定,可以是簡單類型,也可以是復(fù)合類型:
布爾型表達式: x&&y||z;
整型表達式: num1+num2;
2.運算符的優(yōu)先次序
表達式的運算按照運算符的優(yōu)先順序從高到低進行,同級運算符從左到右進行:
優(yōu)先次序 運算符
1 . [] ()
2 ++ -- ! ~ instanceof
3 new (type)
4 * / %
5 + -
6 >> >>> <<
7 > < >= <=
8 = = !=
9 &
10 ^
11 |
12 &&
13 ||
14 ?:
15 = += -= *= /= %= ^=
16 &= |= <<= >>= >>>=
例如,下述條件語句分四步完成:
Result=sum==0?1:num/sum;
第1步:result=sum==0?1:(num/sum)
第2步:result=(sum==0)?1:(num/sum)
第3步:result=((sum==0)?1:(num/sum))
第4步:result=

