詳解Java表達式與運算符

2020-12-11 米粒教育

課程導言

【變量的賦值與計算都離不開表達式,表達式的運算依賴於變量、常量和運算符。本節課討論Java的表達式的構成、常量的定義、運算符的分類及應用。通過本課的學習你將掌握運用表達式和運算符完成變量賦值、條件判斷、數學運算、邏輯運算等功能操作】

在講述課程內容之前,先看一個求圓面積的問題。求圓面積的公式為;

其中S為圓面積,π為圓周率,r為半徑。

假設用程序來計算圓的面積,S、π、r均為變量,省略的乘號為運算符,r的2次方可以描述為r*r。則上面的公式即為求圓面積的表達式。

結合上面的案例,本節課程分為三個小節,第一小節探討不能修改的變量—常量;第二小節探討表達式的組成結構及運用;第三小節探討Java的基本運算符,包括賦值運算符、算術運算符、關係運算符和邏輯運算符。

第一小節 不能修改的變量——常量

在求圓面積的表達式中,π為圓周率,它是一個不變的量,在程序運行過程中不能被修改。常量同變量一樣,也佔用存儲單元的空間。常量的不可修改性提高了程序的穩定性,同時也提高了程序代碼的可維護性。例如,可以把π定義為常量,當程序需要π參與運算時,直接調用定義的常量π即可。

在java語言中,定義常量的語法如下:

final 數據類型 常量名稱 = 值;

其中,final是Java關鍵字,數據類型可以是Java語言支持的任何數據類型。

例如,下面的語句把圓周率定義為常量:

final double Pl = 3.14;

Java關鍵字是Java語言保留的一類標識符,它們用來標識一種數據類型或者程序的結構,Java關鍵字不能用於變量名、方法名、類名等命名。

第二小節 Java表達式

求圓面積的公式就是一個表達式,其中S、π、r為變量或常量,省略的乘號為運算符,r的2次方可以描述為r*r。求圓面積的表達式為:

S =π* r *r;

表達式是由變量、常量和運算符的組合,它執行計算並返回計算結果。在表達式中運算符作用的變量或常量稱為操作數。在求圓面積的表達式中,乘號(*)為運算符,π和r為操作數。

在一些複雜的運算中,簡單的表達式可以組合為複雜的表達式,其操作數本身可能就是一個表達式。例如:

(num1+num2)*(x+y)

上面的表達式中,運算符乘號(*)兩邊的操作數(num1+num2)和(x+y)本身就是一個表達式。表達式的計算結果一般為數值,如果表達式是一個關係表達式或邏輯表達式,表達式會返回一個布爾值,即真或假。

根據運算符的不同,可以把表達式分為賦值表達式、算術表達式、關係表達式和邏輯表達式。賦值表達式用於把等號右邊的操作數賦值給等號左邊的變量;算術表達式用於數值運算;關係表達式用於條件判斷;邏輯表達式用於邏輯操作。

第三小節 Java運算符

運算符用於連接表達式的操作數,並對操作數執行運算。例如,表達式num1+num2,其操作數是num1和num2,運算符是」+」。在java語言中,運算符可分為5種類型:算術運算符、賦值運算符、關係運算符、邏輯運算符、位運算符。

根據操作數的不同,運算符又分為單目運算符、雙目運算符和三目運算符。單目運算符只有一個操作數,雙目運算符有兩個操作數,三目運算符則有三個操作數。位運算符涉及到二進位位的運算,在java 程序中運用不是很多,因此下面主要介紹算術運算符、賦值運算符、關係運算符和邏輯運算符。

(1)算術運算符

算術運算符用在算術表達式中,其作用和數學中的運算符相同,下表列出了Java語言支持的算術運算符。

算術運算符一般用於數值運算,可對操作數進行加減乘除、取餘、自增和自減操作。

加減乘除、取餘運算符比較容易理解。下面重點說說自增和自減運算符。

自增自減是單目運算符,只需要一個操作數參加運算。例如:a++、++a、a--、--a等。其中,a是操作數,++是自增運算符,--是自減運算符,自增和自減運算符即可以放在變量的前面,也可以放在變量的後面,例如++a、 a++。

自增(++):將變量的值加1,分前綴式(如++a)和後綴式(如a++)。前綴式是先加1再使用;後綴式是先使用再加1。

自減(--):將變量的值減1,分前綴式(如--a)和後綴式(如a--)。前綴式是先減1再使用;後綴式是先使用再減1。

(2)賦值運算符

賦值運算符是雙目運算符,用在賦值表達式中。它的作用是將運算符右邊操作數的值賦給運算符左邊的變量。下表列出了Java語言支持的賦值運算符。

賦值運算符分為兩類,一類是簡單賦值,一類是複合賦值。簡單賦值是直接把運算符右邊操作數的值賦給運算符左邊的變量,運算符有「=」;複合賦值運算符複合賦值是先執行運算符指定的運算,然後再將運算結果賦值給運算符左邊的變量,複合賦值運算符有「+=、-=、*=、/=、%=」。

簡單賦值運算符非常容易明白和理解。下面重點說說複合賦值運算符「+=」操作,其它複合賦值運算符操作原理同「+=」運算符操作原理相同,這裡就不再一一講述了。

複合賦值運算符「+=」操作執行過程如下:

1) 將運算符右側的操作數,與運算符左側的操作數(變量值)執行相加操作;

2) 相加的結果賦值給運算符左側的變量。

例如下面語句:

int num = 10;

num+= 20;

聲明的變量num初始值為10,然後執行num+= 20賦值操作,其操作過程是變量num先與數值20相加,相加的結果是30,然後再將30賦值給變量num,此時變量num的值為30。

(3)關係運算符

關係運算符也是雙目運算符,用於關係表達式。關係運算符對兩個操作數進行比較,並返回比較結果,比較結果的值為一個布爾值(true或false)。下表列出了Java語言支持的關係運算符,表中例子假設A和B不相等,並且其A小於B。

關係運算符用於比較兩個操作數的大小,兩個操作數共有六種比較方式。

第一種比較方式是判斷兩個操作數是否相等,用運算符「==」進行運算,如果兩個操作數相等,比較結果返回true,否則返回false。

第二種比較方式是判斷兩個操作數是否不相等,用運算符「!=」進行運算,如果兩個操作數不相等,比較結果返回true,否則返回false。

第三種比較方式是判斷運算符左邊的操作數是否大於運算符右邊的操作數,用運算符「〉」進行運算,如果左邊的操作數比右邊的操作數大,比較結果返回true,否則返回false。

第四種比較方式是判斷運算符左邊的操作數是否小於運算符右邊的操作數,用運算符「<」進行運算,如果左邊的操作數比右邊的操作數小,比較結果返回true,否則返回false。

第五和第六種比較方式是判斷運算符左邊的操作數是否大於等於或小於等於右邊的操作數,用運算符「〉=和<=」進行運算,如果比較結果滿足要求,則返回true,否則返回false。

(4)邏輯運算符

邏輯運算符連接兩個關係表達式或布爾變量,用於解決多個關係表達式的組合判斷問題,返回的運算結果為布爾值。例如,在數學中,表示一個數值的範圍時,經常用不等式來表述,假設一個數值取值範圍為0到100,設該數值為x,不等式0<x<100給出了x的取值範圍。在java程序語言中,這個不等式只能分解為x<0和x>100兩個關係表達式,然後用邏輯運算符進行連接。下表列出了Java語言支持的邏輯運算符,表中假設布爾變量A為真,變量B為假。

邏輯運算符「&&」是雙目運算符,用於判斷兩個關係表達式或布爾變量是否都為真,只有兩個表達式的返回結果都為真時,運算結果為真,否則運算結果為假。

邏輯運算符「||」是雙目運算符,用於判斷兩個關係表達式或布爾變量是否有一個為真,如果有一個為真,返回結果為true,否則返回false。

邏輯運算符「!」是單目運算符,用於取反關係表達式返回的值。例如:對於關係表達式a>b,如果a> b為真,取反後為false,如果a> b為假,取反後為true。

Java運算符的優先級

和數學中的運算符一樣,Java運算符也存在優先級關係。在Java表達式中,優先級高的運算符先參與運算,優先級低的運算符後參與運算。下表給出了運算符的優先級,表中優先級欄,數字越小優先級越高,每個運算符用中文頓號分割。

表中結合性指運算符結合的順序,通常都是從左到右。從右到左的運算符最典型的就是數值前面的正負號,例如3+-4,則意義為3加-4,符號首先和運算符右側的內容結合。

■ 課程小結

1、常量是相對於變量來說的,變量在程序運行過程中,其值可以被修改,而常量是不允許被修改的。常量多用於固定不變的值,如圓周率、數值、光速等。同變量一樣,常量也可以用標識符命名,並佔用存儲單元空間。在表達式中,數值可以直接參與運算,參與運算的數值也稱為字面常量。

2、表達式同數學中的算式相同,是由變量、常量和運算符組合而成的。最簡單的表達式僅由一個運算符和一個操作數構成,較複雜的表達式則由多個運算符以及多個操作數構成。表達式必須返回計算結果,計算結果或為值或為布爾值。

3、運算符對參與的操作數進行運算,根據參與運算的操作數的個數可把運算符分為單目運算符、雙目運算符和三目運算符。當一個表達式包含多個運算符時,就需要考慮運算符的優先級,優先級高的運算符先參與運算,優先級低的運算符後參與運算。在實際的開發中,不需要特別去記憶運算符的優先級別,也不要刻意的使用運算符的優先級別,對於不清楚優先級的地方使用小括號輔助進行優先級管理。

■ 思考與練習

1、常量和變量有什麼不同?

2、表達式中的數值是常量嗎?

3、算術表達式返回的計算結果是數值還是布爾值?

4、a>b屬於什麼類型的表達式?其返回結果是數值還是布爾值?

5、假設變量a的值為5,執行a+=10操作後,變量a的值是多少?

6、請給出表達式a+=b*2的執行順序。

相關焦點

  • 跟我學java編程—Java表達式
    例如:在表達式age>18中,age和18是操作數,符號>為運算符。同樣,在表達式num1+num2中,num1和num2均為操作數,符號+為算術運算符。在一些複雜的運算中,簡單的表達式可以組合為複雜的表達式,其操作數本身可能就是一個表達式。例如(num1+num2)*(x+y),其中的操作數(num1+num2)和(x+y)本身就是表達式,並用運算符*相乘。
  • 跟我學java編程—Java條件運算符
    Java語言還提供了一種稱為「條件運算符」的特殊運算符,它可以用於條件表達式中,以提供與if-else等同的結構。此運算符是?和:符號的組合,它是一個三目運算符,即具有三個參與運算的操作數。其語法規則如下:布爾表達式 ?
  • 跟我學java編程—Java邏輯運算符
    邏輯與運算符「&&」,用於判斷運算符兩邊的條件表達式或布爾變量是否同為真,如果同為真,返回結果為true,否則返回false。第四條語句邏輯與運算符「&&」連接了2個條件表達式,分別是c > a和c < b,如果這兩個表達式計算結果都為真,則bJudge為真,否則bJudge為false。此時bJudge的值為true。該運算符還有一個特點,當左側的條件表達式或布爾變量為假時,則直接返回結果false,不再執行運算符右側的表達式或布爾變量。
  • 7.Java基礎知識-運算符
    7.1 運算符的概念 運算符對常量和變量進行操作的符號稱為運算符 表達式用運算符把常量或者變量連接起來符號java語法的式子就可以稱為表達式。不同運算符連接的式子體現的是不同類型的表達式。
  • 跟我學java編程—Java算術運算符
    算術運算符用在算術表達式中,其作用和數學中的運算符相同,下表列出了Java語言支持的算術運算符。示例1:加減乘除操作符運算在D盤Java目錄下,新建「OperationSample.java」文件。用記事本打開「OperationSample.java」文件,輸入以下代碼:public class OperationSample {代碼結構分析程序功能主要是演示+、-、*、/運算符的使用方法。
  • Java的四則運算符與取模運算符
    各位小夥伴們大家好,這次小編要介紹的是Java的四則運算符與取模運算符。這裡,小編要提一下一些常見的運算符:算術運算符,賦值運算符,比較運算符,邏輯運算符,三元運算符。這次就先來講算術運算符與取模運算符,那麼哪些是算數運算符呢?就是我們小學的時候學習的四則運算,取模運算就相當於取餘數。大家都知道,四則運算符主要有,加,減,乘,除這四種,那麼這是種運算符是如何在java程序中運用的呢?
  • 跟我學java編程—Java運算符的優先級
    Java表達式可能存在多個運算符,運算符之間存在優先級的關係,級別高的運算符先執行運算,級別低的運算符後執行運算算,下表列出了運算符的優先級。表中優先級欄,數字越小優先級越高,運算符每個運算符用中文頓號分割。
  • 跟我學java編程—簡單賦值運算符「=」
    賦值運算符是雙目運算符,用在賦值表達式中。賦值運算符將值存儲在運算符左邊操作數指定的變量中。 簡單賦值運算符簡單賦值運算符是雙目運算符,需要兩個操作數,運算符為『=』,運算符左邊的操作數為被賦值的變量,運算符右邊的操作數為要賦予的值或表達式。
  • Java基本語法之運算符和表達式
    Java 常用的運算符分為五類:算術運算符、關係運算符、布爾邏輯運算符、位運算符、賦值運算符。位運算符除了簡單的按位操作外,還有移位操作。按位操作返回布爾值。表達式是由常量、變量、對象、方法調用和操作符組成的式子。表達式必須符合一定的規範,才可被系統理解、編譯和運行。表達式的值就是對表達式自身運算後得到的結果。
  • 最全的Java 運算符教程筆記
    我們可以把運算符分成以下幾組:算術運算符關係運算符位運算符邏輯運算符賦值運算符其他運算符算術運算符算術運算符用在數學表達式中,它們的作用和在數學中的作用一樣。下表列出了所有的算術運算符。實例下面的簡單示例程序演示了關係運算符。複製並粘貼下面的Java程序並保存為Test.java文件,然後編譯並運行這個程序:Test.java 文件代碼:01.public class Test {02.
  • Java自學入門之賦值運算符
    賦值運算符尹成課程資料及演示(免費)(文末有資料連結)賦值運算符的作用就是將常量、變量或表達式的值賦給某一個變量。接下來通過一張表來展示Java中的賦值運算符及其用法,如表1所示。表1 賦值運算符在賦值過程中,運算順序從右往左,將右邊表達式的結果賦值給左邊的變量。在賦值運算符的使用中,需要注意以下幾個問題。
  • Java基礎系列之:你了解Java運算符嗎?
    在數據運算中,會使用到相應的運算符。下面介紹幾種Java的運算符算術運算符算術運算符用在數學表達式中,它們的作用和在數學中的作用一樣。也就是我們生活中的加減乘除。後綴自增自減法(a++,a--): 先進行表達式運算,再進行自增或者自減運算。關係運算符兩個變量之間的比較運算運算符描述==檢查如果兩個操作數的值是否相等,如果相等則條件為真!=檢查如果兩個操作數的值是否相等,如果值不相等則條件為真。為真。
  • 【編程基礎】零基礎學習Java之運算符
    a&&b,a和b全為true時結果才是ture;a||b,a或者b有一為true結果就是true;這裡a和b可能是兩個boolean變量,也可能是兩個結果為boolean的表達式。註:說一下短路問題,這個在實際編程中也會遇到,短路是在進行邏輯運算時,如果通過前面的判斷已經能夠明確的知道整個表達式的值,就不會再進行後面表達式的邏輯判斷。例如:表達式a || 表達式b || 表達式c 在知道表達式a是true時就已經能夠知道整個表達式的值為true,所以表達式2和3 都不會再進行判斷。
  • java基礎案例之java語言運算符算術賦值比較邏輯三元和位運算
    java運算符包含以下6種:1:算術運算符。 2:賦值運算符。 3:比較運算符。 4:邏輯運算符。 5:位運算符。 6:三元運算符。java運算符組成明細java運算符由以上6種運算符組成,算術運算符主要為加減乘除自增自減等組成
  • Java基礎篇——Java運算符
    Java對邏輯與和邏輯或提供「短路」功能,也就是在進行運算時,先計算運算符左側的表達式的值,如果使用該值能得到整個表達式的值,則跳過運算符右側表達式的計算,否則計算運算符右側表達式,並得到整個表達式的值。
  • C語言中的運算符和表達式
    前綴形式指變量的值加1作為表達式的值,同時變量的值加1;後綴形式指將變量的值作為表達式的值,然後變量值加1。符號運算符、自增和自減運算符為一元運算符。三、關係運算符和關係表達式程序設計中需要經常對運算對象之間的大小進行比較,如:大小、相等等關係,這樣的運算符稱為關係運算符,用關係運算符將數值或表達式連接起來的式子就是關係表達式,滿足關係表達式運算符關係的結果稱為「真」,否則為假。
  • Java入門:運算符的五種運算符有算術、賦值、比較、邏輯,三元
    一、運算符算術運算符在java當中,整數使用以上運算符的話,不管我們怎麼樣去計算,也不會得到小數。自己再加上1.a的結果就是2,那麼b的結果就是1;+符號在字符串中的操作:+符號在遇到字符串的時候,表示連結、拼接的含義「a」+「b」的結果是「ab」,連結含義2.賦值運算符
  • 少兒Python編程培訓手冊系列之——運算符和表達式
    Python中常用的運算符有下列五種類型,分別是:賦值、算術、關係、邏輯和符合賦值運算符。其他的後期遇到了再做解釋。如:age=25注意:Python語句結尾不用分號(;),這與其他C、java語言不同。在Python中交互兩個數非常簡單,無需第三個變量參與。
  • c語言基礎語法五:運算符與表達式
    取地址符&逗號運算符sizeof運算符運算符的優先性與結合性二:表達式:三目運算符自右向左14=、+=、-=、*=、/=、|=、&=、<<=、>>=賦值運算符、複合賦值運算符自右向左15,逗號運算符自左向右二:表達式表達式:表達式又稱為求值表達式,每一個表達式最終都會被計算出,得到整個表達式的值,並使用這個值來代表整個表達式
  • 單片機c語言教程:C51運算符和表達式
    typedef 的語法是typedef 已有的數據類型 新的數據類型名 運算符就是完成某種特定運算的符號。運算符按其表達式中與運算符的關係可分為單目運算符,雙目運算符和三目運算符。單目就是指需要有一個運算對象,雙目就要求有兩個運 算對象,三目則要三個運算對象。