關系運算符
關系運算符(relational operators)也可以稱為“比較運算符”堆缘,用于用來比較判斷兩個變量或常量的大小。
關系運算符是二元運算符送膳,運算結(jié)果是 boolean 型员魏。當運算符對應的關系成立時,運算結(jié)果是 true叠聋,否則是 false撕阎。
關系表達式是由關系運算符連接起來的表達式。
關系運算符中“關系”二字的含義是指一個數(shù)據(jù)與另一個數(shù)據(jù)之間的關系碌补,這種關系只有成立與不成立兩種可能情況虏束,可以用邏輯值來表示,邏輯上的 true 與 false 用數(shù)字 1 與 0 來表示厦章。關系成立時表達式的結(jié)果為 true(或 1)镇匀,否則表達式的結(jié)果為 false(或 0)。
運算符 | 含義 | 說明 | 實例 | 結(jié)果 |
---|---|---|---|---|
> | 大于運算符 | 只支持左右兩邊操作數(shù)是數(shù)值類型袜啃。如果前面變量的值大于后面變量的值汗侵, 則返回 true。 | 2>3 | false |
>= | 大于或等于運算符 | 只支持左右兩邊操作數(shù)是數(shù)值類型。如果前面變量的值大于等于后面變量的值晰韵, 則返回 true发乔。 | 4>=2 | true |
< | 小于運算符 | 只支持左右兩邊操作數(shù)是數(shù)值類型。如果前面變量的值小于后面變量的值雪猪,則返回 true栏尚。 | 2<3 | true |
<= | 小于或等于運算符 | 只支持左右兩邊操作數(shù)是數(shù)值類型。如果前面變量的值小于等于后面變量的值浪蹂, 則返回 true抵栈。 | 4<=2 | false |
== | 相等運算符 | 如果進行比較的兩個操作數(shù)都是數(shù)值類型,無論它們的數(shù)據(jù)類型是否相同坤次,只要它們的值相等古劲,也都將返回 true。如果兩個操作數(shù)都是引用類型缰猴,只有當兩個引用變量的類型具有父子關系時才可以比較产艾,只要兩個引用指向的不是同一個對象就會返回 true。Java也支持兩個 boolean 類型的值進行比較滑绒。 | 4==4 | true |
!= | 不相等運算符 | 如果進行比較的兩個操作數(shù)都是數(shù)值類型闷堡,無論它們的數(shù)據(jù)類型是否相同,只要它們的值不相等疑故,也都將返回 true杠览。如果兩個操作數(shù)都是引用類型,只有當兩個引用變量的類型具有父子關系時才可以比較纵势,只要兩個引用指向的不是同一個對象就會返回 true踱阿。 | 4!=2 | true |
使用實例:
a > b // 比較變量a的值是否大于變量b的值
x+y> = z // 比較變量x與變量y的和是否大于或等于變量z的值
width * width+size != area // 比較變量width的平方加上變量size的值是否與變量area的值不相等
name == "zhht" // 比較變量name的值是否等于字符串nzht
pass != "123456" // 比較變量pass的值是否不等于字符串“123456”
注意點如下所示:
- 基本類型的變量、值不能和引用類型的變量钦铁、值使用 == 進行比較软舌;
- boolean 類型的變量、值不能與其他任意類型的變量牛曹、值使用 == 進行比較佛点;
- 如果兩個引用類型之間沒有父子繼承關系,那么它們的變量也不能使用 == 進行比較黎比。
-
== 和 != 可以應用于基本數(shù)據(jù)類型和引用類型超营。當用于引用類型比較時,比較的是兩個引用是否指向同一個對象阅虫,但當時實際開發(fā)過程多數(shù)情況下糟描,只是比較對象的內(nèi)容是否相當,不需要比較是否為同一個對象书妻。
優(yōu)先級
關系運算符的優(yōu)先級為:>、<、>=躲履、<= 具有相同的優(yōu)先級见间,并且高于具有相同優(yōu)先級的 !=、==工猜。
關系運算符的優(yōu)先級高于賦值運算符而低于算術運算符米诉,結(jié)合方向是自左向右。
用關系表達式要注意以下幾點:
- 運算符 >=篷帅、==史侣、!=魏身、<= 是兩個字符構成的一個運算符惊橱,用空格從中分開寫就會產(chǎn)生語法錯誤。例如 x> =y; 是錯誤的箭昵,但是可以寫成x >= y; 在運算符的兩側(cè)增加空格會提高可讀性税朴。同樣將運算符寫反,例如 =>家制、=<正林、=! 等形式會產(chǎn)生語法錯誤。
- 由于計算機內(nèi)存放的實數(shù)與實際的實數(shù)存在著一定的誤差颤殴,如果對浮點數(shù)進行 ==(相等)或 !=(不相等)的比較觅廓,容易產(chǎn)生錯誤結(jié)果,應該盡量避免涵但。
- 不要將“==”寫成“=”杈绸。
實例代碼
編寫一個程序,使用戶可以從鍵盤輸入兩個數(shù)贤笆,并判斷這兩個數(shù)之間的大小蝇棉。 實現(xiàn)代碼如下:
public static void main(String[] args) {
int number1, number2; // 定義變量,保存輸入的兩個數(shù)
System.out.print("請輸入第一個整數(shù)(number1):");
Scanner input = new Scanner(System.in);
number1 = input.nextInt(); // 輸入第一個數(shù)
System.out.print("請輸入第二個整數(shù)(number2):");
input = new Scanner(System.in);
number2 = input.nextInt(); // 輸入第二個數(shù)
System.out.printf("number1=%d,number2=%d\n", number1, number2); // 輸出這兩個數(shù)
// 判斷用戶輸入的兩個數(shù)是否相等
if (number1 == number2) {
System.out.println("number1 和 number2 相等芥永。");
}
// 判斷用戶輸入的兩個數(shù)據(jù)是否相等
if (number1 != number2) {
System.out.println("number1 和 number2 不相等篡殷。");
// 判斷用戶輸入的數(shù)1是否大于數(shù)2
if (number1 > number2) {
System.out.println("number1 大于 number2。");
}
// 判斷用戶輸入的數(shù)1是否小于數(shù)2
if (number1 < number2) {
System.out.println("number1 小于 number2埋涧。");
}
}
}
結(jié)果:
程序中板辽,使用 input.nextInt() 接收用戶從鍵盤輸入的兩個數(shù),然后通過關系運算符來比較這兩個數(shù)之間的大小棘催。
這里用到了 if 語句劲弦,它是一個流程控制語句,將在后面的章節(jié)中詳細講解醇坝。