1. 程式人生 > >Java運算符——通過示例學習Java編程(6)

Java運算符——通過示例學習Java編程(6)

dem sign pri bool 頂部 第一個 nbsp 賦值運算符 rgs

作者:CHAITANYA SINGH

來源:https://www.koofun.com/pro/kfpostsdetail?kfpostsid=17

運算符是表示動作的字符,例如+是表示加法的算術運算符。

Java中的運算符類型有七大類:基本算術運算符、賦值運算符、自增運算符和自減運算符、邏輯運算符、比較(關系)運算符、位運算符、三元運算符

1)基本算術運算符

基本算術運算符是:+, - ,*,/,%,其中+用於加法,-用於減法,*用於乘法,/用於除法,%用於計算兩個操作數相除後的余數。

註意:%運算符操作後返回余數,例如:10%5將返回0

算術運算符的例子

1 2 3 4 5 6 7 8 9 10 11 12 public class ArithmeticOperatorDemo { public static void main(String args[]) { int num1 = 100; int num2 = 20; System.out.println("num1 + num2: " + (num1 + num2) ); System.out.println("num1 - num2: " + (num1 - num2) ); System.out.println("num1 * num2: " + (num1 * num2) );
System.out.println("num1 / num2: " + (num1 / num2) ); System.out.println("num1 % num2: " + (num1 % num2) ); } }

輸出:

1 2 3 4 5 num1 + num2: 120 num1 - num2: 80 num1 * num2: 2000 num1 / num2: 5 num1 % num2: 0

2)賦值運算符

java中的賦值運算符是:=,+=, -=,*=,/=,%=

num2 = num1將變量num1的值賦給變量。

num2 += num1等於num2 = num2 + num1

num2 -= num1等於num2 = num2 - num1

num2 *= num1等於num2 = num2 * num1

num2 /= num1等於num2 = num2 / num1

num2 %= num1等於num2 = num2 % num1

賦值運算符的示例

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 public class AssignmentOperatorDemo { public static void main(String args[]) { int num1 = 10; int num2 = 20; num2 = num1; System.out.println("= Output: "+num2); num2 += num1; System.out.println("+= Output: "+num2); num2 -= num1; System.out.println("-= Output: "+num2); num2 *= num1; System.out.println("*= Output: "+num2); num2 /= num1; System.out.println("/= Output: "+num2); num2 %= num1; System.out.println("%= Output: "+num2); } }

輸出:

1 2 3 4 5 6 = Output: 10 += Output: 20 -= Output: 10 *= Output: 100 /= Output: 10 %= Output: 0

3)自增和自減運算符

++和 --

num++ 相當於num = num+1;

num-- 相當於num = num-1;

自增和自減運算符的示例

1 2 3 4 5 6 7 8 9 10 public class AutoOperatorDemo { public static void main(String args[]){ int num1=100; int num2=200; num1++; num2--; System.out.println("num1++ is: "+num1); System.out.println("num2-- is: "+num2); } }

輸出:

1 2 num1++ is: 101 num2-- is: 199

4)邏輯運算符

邏輯運算符與二進制變量一起使用,它們主要用於條件語句和循環語句中的評估條件。

java中的邏輯運算符是:&&、|| 、!

假設我們有兩個布爾變量b1和b2。

如果b1和b2都為true,則b1 && b2將返回true,否則返回false。

如果b1和b2都為false,則b1 || b2將返回false,否則返回true。

!b1將返回b1的反面,這意味著如果b1為false則!b1返回true,如果b1為true則!b1返回false。

邏輯運算符的示例

1 2 3 4 5 6 7 8 9 10 public class LogicalOperatorDemo { public static void main(String args[]) { boolean b1 = true; boolean b2 = false; System.out.println("b1 && b2: " + (b1&&b2)); System.out.println("b1 || b2: " + (b1||b2)); System.out.println("!(b1 && b2): " + !(b1&&b2)); } }

輸出:

1 2 3 b1 && b2: false b1 || b2: true !(b1 && b2): true

5)比較(關系)運算符

我們在Java中有六個關系運算符:==,!=,>,<,>=,<=

如果左側和右側都相等,則==返回true

!=如果左側不等於運算符的右側,則返回true。

>如果左側大於右側,則返回true。

<如果左側小於右側,則返回true。

如果左側大於或等於右側,則==返回true。

如果左側小於或等於右側,則<=返回true。

關系運算符的示例

註意:這個例子使用的if-else語句是我們下一個教程要講解的內容,如果你發現它很難理解,那麽請先跳過去,等讀完了下一個教程後再返回來看這個例子。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 public class RelationalOperatorDemo { public static void main(String args[]) { int num1 = 10; int num2 = 50; if (num1==num2) { System.out.println("num1 and num2 are equal"); } else{ System.out.println("num1 and num2 are not equal"); } if( num1 != num2 ){ System.out.println("num1 and num2 are not equal"); } else{ System.out.println("num1 and num2 are equal"); } if( num1 > num2 ){ System.out.println("num1 is greater than num2"); } else{ System.out.println("num1 is not greater than num2"); } if( num1 >= num2 ){ System.out.println("num1 is greater than or equal to num2"); } else{ System.out.println("num1 is less than num2"); } if( num1 < num2 ){ System.out.println("num1 is less than num2"); } else{ System.out.println("num1 is not less than num2"); } if( num1 <= num2){ System.out.println("num1 is less than or equal to num2"); } else{ System.out.println("num1 is greater than num2"); } } }

輸出:

1 2 3 4 5 6 num1 and num2 are not equal num1 and num2 are not equal num1 is not greater than num2 num1 is less than num2 num1 is less than num2 num1 is less than or equal to num2

6)按位運算符

有六個按位運算符:&,|,^,?,<<,>>

1 2 num1 = 11; /* 等於00001011 */ num2 = 22; /* 等於00010110 */

按位運算符執行逐位處理。

num1和num2比較num1和num2的相應位,如果兩個位相等則生成1,否則返回0。在我們的例子中它將返回:2,這是00000010,因為在num1和num2的二進制形式中只有第二個最後的位匹配。

num1 | num2比較num1和num2的相應位,如果任一位為1,則生成1,否則返回0。在我們的例子中,它將返回31,即00011111

num1 ^ num2比較num1和num2的相應位,如果它們不相等則生成1,否則返回0。在我們的例子中它將返回29,相當於00011101

~num1是一個補碼運算符,它只是將位從0更改為1,將1更改為0。在我們的示例中,它將返回-12,其中8位等效於11110100

num1 << 2是左移位運算符,向左移動位,丟棄最左邊的位,並將最右邊的位賦值為0,在我們的例子中輸出為44,相當於00101100

註意:在下面的示例中,我們在此移位運算符的右側提供2,這是位向左移動兩個位置的原因。我們可以更改此數字,並且位將按運算符右側指定的位數移動。同樣適用於右側操作員。

num1 >> 2是右移位運算符,將位向右移動,丟棄最右位,並將最左位的值賦值為0。在我們的例子中輸出為2,相當於00000010

按位運算符的示例

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 public class BitwiseOperatorDemo { public static void main(String args[]) { int num1 = 11; /* 11 = 00001011 */ int num2 = 22; /* 22 = 00010110 */ int result = 0; result = num1 & num2; System.out.println("num1 & num2: "+result); result = num1 | num2; System.out.println("num1 | num2: "+result); result = num1 ^ num2; System.out.println("num1 ^ num2: "+result); result = ~num1; System.out.println("~num1: "+result); result = num1 << 2; System.out.println("num1 << 2: "+result); result = num1 >> 2; System.out.println("num1 >> 2: "+result); } }

輸出:

1 2 3 4 5 num1 & num2: 2 num1 | num2: 31 num1 ^ num2: 29 ~num1: -12 num1 << 2: 44 num1 >> 2: 2

7)三元運算符

此運算符計算布爾表達式並根據結果分配值。

句法:

1 variable num1 = (expression) ? value if true : value if false;

如果表達式結果為true,則將冒號( : )之前的第一個值賦值給變量num1,否則將第二個值賦值給變量num1。

三元運算符的例子

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 public class TernaryOperatorDemo { public static void main(String args[]) { int num1, num2; num1 = 25; /* num1 is not equal to 10 that‘s why * the second value after colon is assigned * to the variable num2 */ num2 = (num1 == 10) ? 100 : 200; System.out.println( "num2: "+num2); /* num1 is equal to 25 that‘s why * the first value is assigned * to the variable num2 */ num2 = (num1 == 25) ? 100: 200; System.out.println( "num2: "+num2); } }

輸出:

1 2 num2: 200 num2: 100

Java中的運算符優先級

如果表達式具有多個運算符,則確定首先需要對哪個運算符求值。操作符在頂部具有較高優先級,在底部具有較低優先級。

1 2 3 4 5 6 7 8 9 10 11 12 13 一元運算符:++ -- ! ~ 乘除法: * / % 加減法: + - 移位: << >> 關系: > >= = <= 平等: == != 按位AND : & 按位XOR : ^ 按位OR : | 邏輯AND : && 邏輯OR : || 三元: ?: 賦值: = += -= *= /= %= >> =< <= &= ^= |=

Java運算符——通過示例學習Java編程(6)