詳解Java表達式與運算符

2021-01-08 米粒教育

課程導言

【變量的賦值與計算都離不開表達式,表達式的運算依賴於變量、常量和運算符。本節課討論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運算符
    int result = (45 + 5) / 5 * 10;package net.ittimeline.java.core.jdk.foundational.operator;/** * 運算符的優先級 * 運算符的優先級決定了存在多個運算符時一個表達式各部分的運算順序。Java 對運算順序作出了特別的規定。
  • 跟我學java編程—Java邏輯運算符
    第四條語句邏輯與運算符「&&」連接了2個條件表達式,分別是c > a和c < b,如果這兩個表達式計算結果都為真,則bJudge為真,否則bJudge為false。此時bJudge的值為true。該運算符還有一個特點,當左側的條件表達式或布爾變量為假時,則直接返回結果false,不再執行運算符右側的表達式或布爾變量。
  • 7.Java基礎知識-運算符
    7.1 運算符的概念 運算符對常量和變量進行操作的符號稱為運算符 表達式用運算符把常量或者變量連接起來符號java語法的式子就可以稱為表達式。不同運算符連接的式子體現的是不同類型的表達式。
  • 跟我學java編程—簡單賦值運算符「=」
    簡單賦值運算符簡單賦值運算符是雙目運算符,需要兩個操作數,運算符為『=』,運算符左邊的操作數為被賦值的變量,運算符右邊的操作數為要賦予的值或表達式。a*b的結果賦值給C,C為300示例1:簡單賦值運算符在D盤Java目錄下,新建「AssignSample.java」文件。
  • 高淇三百集之java運算符
    運算符(operator)Java 語言支持如下運算符:算術運算符: +,-,*,/,%,++,--賦值運算符 =關係運算符: >,<,>=,<=,==,!= instanceof邏輯運算符: &&,||,!
  • Java自學入門之賦值運算符
    賦值運算符尹成課程資料及演示(免費)(文末有資料連結)賦值運算符的作用就是將常量、變量或表達式的值賦給某一個變量。接下來通過一張表來展示Java中的賦值運算符及其用法,如表1所示。表1 賦值運算符在賦值過程中,運算順序從右往左,將右邊表達式的結果賦值給左邊的變量。在賦值運算符的使用中,需要注意以下幾個問題。
  • C語言中的運算符和表達式
    一、賦值運算符和賦值表達式1、賦值運算符C語言的賦值運算符為等號,表示形式「=」。此外,還有複合賦值運算符,後續陸續介紹。2、賦值表達式「=」的左側是變量,右側是常量、變量、表達式、函數等,「=」的含義是將右邊的值賦給左側的變量,程序運行時先計算右側值,然後賦給左側變量。
  • 「碼牛雲課堂」Java基礎-idea、運算符、流程控制語句
    (應用)賦值運算符用於為變量指定變量值,java使用=作為賦值運算符,通常使用賦值運算符將一個直接量賦值給變量。package com.mnyketang;/* 賦值運算符用於為變量指定變量值,java使用=作為賦值運算符,通常使用賦值運算符將一個直接量賦值給變量。
  • Java基礎篇——Java運算符
    Java對邏輯與和邏輯或提供「短路」功能,也就是在進行運算時,先計算運算符左側的表達式的值,如果使用該值能得到整個表達式的值,則跳過運算符右側表達式的計算,否則計算運算符右側表達式,並得到整個表達式的值。
  • Delphi 語言基礎——運算符和表達式
    一、運算符分類1、算術運算符2、布爾運算符3、位邏輯運算符4、字符串運算符5、集合運算符6、關係運算符7、類運算符8、運算符優先級規則二、運算符具體敘述dephi中的運算符包括:@(獲取變量的指針內存地址)、not、^(用在變量的前面是獲取變量的地址
  • java基礎案例之java語言運算符算術賦值比較邏輯三元和位運算
    java運算符包含以下6種:1:算術運算符。 2:賦值運算符。 3:比較運算符。 4:邏輯運算符。 5:位運算符。 6:三元運算符。java運算符組成明細java運算符由以上6種運算符組成,算術運算符主要為加減乘除自增自減等組成
  • Java運算符
    Java語言中的表達式是由運算符與操作數組合而成的,所謂的運算符就是用來做運算的符號。在Java中的運算符,基本上可分為算術運算符、關係運算符、邏輯運算符、位運算符、賦值運算符、轉型運算符等。二、關係運算符 Java具有完美的關係運算符。這些關係運算符基本上同數學中的關係運算符是一致的。「>」大於、「<」小於、「>=」大於等於、「<=」小於等於、「==」等於、「!=」不等於。
  • 數據結構之中綴表達式轉後綴表達式(Java實現)
    上一篇文章中用java實現了後綴表達式的計算,連結https://blog.csdn.net/xindanding/article/details/90443998但是我們在計算時不可能手動將要計算的表達式轉為後綴再丟給計算器
  • Java條件運算符
    條件運算符 條件運算符,也稱作三元運算符(或三目運算符),由符號「? :」組合構成,其語法格式如下: (boolean_expr) ?
  • 少兒Python編程培訓手冊系列之——運算符和表達式
    Python中常用的運算符有下列五種類型,分別是:賦值、算術、關係、邏輯和符合賦值運算符。其他的後期遇到了再做解釋。01賦值運算符用「=」表示,用在給變量賦值的時候。如:age=25注意:Python語句結尾不用分號(;),這與其他C、java語言不同。在Python中交互兩個數非常簡單,無需第三個變量參與。02算術運算符參與四則運算的符號。
  • Java入門:運算符的五種運算符有算術、賦值、比較、邏輯,三元
    一、運算符算術運算符在java當中,整數使用以上運算符的話,不管我們怎麼樣去計算,也不會得到小數。++運算,變量自己增長1,反之--運算的話,變量自己減少1,用法就是和++算法是一樣的。就有不同的結果變量前++:變量a自己加1,將加1後的結果賦值給b,也就是說a先計算,a和b的結果都是2變量後++:變量a首先把自己的值1,賦值給變量b,此時變量b的值就是1,變量a自己再加上1.a的結果就是2,那麼b的結果就是1;+符號在字符串中的操作:+符號在遇到字符串的時候,表示連結、拼接的含義「a」+「b」的結果是「ab」,連結含義2.賦值運算符
  • Java運算符知識點總結
    每一種運算方式,又都包含了很多的運算符,學習Java中的運算,就是學習這些運算符的使用。下面一起來看看Java運算符知識點總結吧!>運算符,顧名思義,就是對數據(常量和變量)進行運算的符號。我們把數據用運算符連接起來,就構成了可以進行運算的表達式。比如 1 + 2、3 * 4 等等。
  • 運算符之,邏輯運算符
    邏輯運算符: & | ^ ! && || 特點: 運算費用一般用於連結boolean類型的表達式和值 表達式: 就是運算符把常量或變量連接在一起的符合java語法的句子 算數表達式:a+b 賦值運算符:a==b 結論: &邏輯與
  • Python編程基礎05:運算符與表達式
    表達式是指由常量、變量和運算符組成的一個算式。編寫程序對數據進行處理,其實處理就是對數據實施各種各樣的運算,搞懂運算符與表達式是我們編寫程序的基礎性工作,本次講課筆記通過案例講解各種運算符的用法以及正確書寫Python表達式的注意事項。
  • 學習編程java中的變量和數據類型以及運算符,初學者看過來吧
    :(1)賦值運算符:= 語法:變量名=表達式; 賦值方向:從右向左 示例:int a=5+3-4;(2)算術運算符:+,-,*,/(除法)-取商,%(取餘) 示例: 5/2=2 5%2=1 1-100之間的偶數:(1-100)%2==0補充:從控制臺錄入信息:Scanner