第3章 Java運算符、表達式與語句.ppt_第1頁
第3章 Java運算符、表達式與語句.ppt_第2頁
第3章 Java運算符、表達式與語句.ppt_第3頁
第3章 Java運算符、表達式與語句.ppt_第4頁
第3章 Java運算符、表達式與語句.ppt_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、第3章運算符、表達式與語句,本章導(dǎo)讀 1. 算術(shù)運算符和算術(shù)表達式 2. 關(guān)系運算符與關(guān)系表達式 3. 邏輯運算符與邏輯表達式 4. 賦值運算符與賦值表達式 5. 移位運算符 6. 位運算符 7. 條件運算符 8. instanceof 運算符,9.一般表達式 10. 語句概述 11. 分支語句 12.循環(huán)語句 13.跳轉(zhuǎn)語句,3.1算術(shù)運算符和算術(shù)表達式,(1)加減運算符 加減運算的結(jié)合性是從左到右。加減運算的操作元是 整型或浮點型數(shù)據(jù),加減運算符的優(yōu)先級是4級。 (2)乘、除和求余運算符 乘、除和求余運算的運算符號為*、/、%,都是雙目運 算符。*、/、%運算符的結(jié)合性是從左到右,例如:

2、2*3/8,先計算2*3,然后再將得到的結(jié)果除以8。乘、除 和求余運算的操作元是整型或浮點型數(shù)據(jù)。*、/、%運 算符的優(yōu)先級是3級。,(3)自增、自減運算符 自增、自減運算的運算符號為:+、-,都是單目運算符,運算符的優(yōu)先級是2級。運算符可以放在操作元之前,也可以放在操作元之后,但操作元必須是一個整型或浮點型變量(不能是常量或表達式)。運算符的作用是使變量的值增1或減1,如: +x,-x表示在使用x之前,先使x的值加(減)1。 x+,x-表示在使用x之后,使x的值加(減)1。 粗略地看,+x和x+的作用相當(dāng)于x=x+1。但+x和x+的不同之處在于,+x是先執(zhí)行x=x+1再使用x的值,而x+是先

3、使用x的值再執(zhí)行x=x+1。如果 x的原值是5,則: 對于y=+x;y的值為6。 對于y=x+;y的值為5,然后x的值變?yōu)?。,(4)算術(shù)表達式 用算術(shù)符號和操作元連接起來的符合Java語法規(guī)則的式子,稱為算術(shù)表達式。如 x+2*y-30+3*(y+5) -12+n+(-n)。 (5)算術(shù)混合運算的精度 精度從“低”到“高”排列的順序是: byte short int long float double Java將按運算符兩邊的操作元的最高精度保留結(jié)果的精度,例如:5/2的結(jié)果是2,要想得到2.5,必須寫成5.0/2或5.0f/2。,char型數(shù)據(jù)和整型數(shù)據(jù)運算結(jié)果的精度是int。例如: by

4、te k=18; 那么 H+k; 的結(jié)果是int型,因此下列寫法是不正確的, char ch=H+k; 應(yīng)當(dāng)寫成: char ch=(char)(H+k);,返回,3.2關(guān)系運算符與關(guān)系表達式,關(guān)系運算符用來比較兩個值的關(guān)系,關(guān)系運算符的運算結(jié)果是boolean型數(shù)據(jù),當(dāng)運算符對應(yīng)的關(guān)系成立時,運算結(jié)果是true,否則是false。 (1)大小關(guān)系運算符 大小關(guān)系運算的符號分別是:、=、1的結(jié)果是true。在書寫時要特別注意的是“20-17的結(jié)果為true,因為算術(shù)運算符的級別高于關(guān)系運算符,1020-17相當(dāng)于10(20-17)。,(2)等與不等關(guān)系 等與不等關(guān)系運算的符號分別是:“=”、“

5、!=”,都是雙目運算符。運算符的級別是7級。“=”和“!=”都是由2個字符組成的一個完整的符號,書寫時不要含有空格。注意不要將后面講述的賦值運算符“=”與等號運算符“=”混淆。 (3)關(guān)系表達式 結(jié)果為數(shù)值型的變量或表達式可以通過關(guān)系運算符形成關(guān)系表達式。例如,2418,(x+y+z)30+x等。,返回,3.3邏輯運算符與邏輯表達式,邏輯運算用來實現(xiàn)boolean型數(shù)據(jù)的邏輯“與”、“或”和“非”運算,運算結(jié)果是boolean型數(shù)據(jù)。 (1)邏輯“與”和邏輯“或” 邏輯“與”和邏輯“或”運算的符號是: 1111 1000 在進行a1運算時,首先將1111 1000生級為int型,將高位用1填充

6、: 1111 1111 1111 1111 1111 1111 1111 1000 然后在進行移位運算得到-16: 1111 1111 1111 1111 1111 1111 1111 0000,因此,如果把a1的結(jié)果賦值給一個byte型變量就必須進行強制轉(zhuǎn)換運算: byte b=(byte)(a1); 在進行an運算時,如果a是byte、short或int型數(shù)據(jù),系統(tǒng)總是先計算出n%32的結(jié)果m,然后進行am運算。例如,a33的計算結(jié)果與a1相同。對于long型數(shù)據(jù),系統(tǒng)總是先計算出n%64的結(jié)果m,然后進行am運算。,(2)右移位運算符 右移位運算的符號為:,是雙目運算符。假設(shè)a是一個被移

7、位的整型數(shù)據(jù),n是位移量。 an運算的結(jié)果是通過將a的所有位都右移n位,每右移一個位,右邊的低階位被移出丟棄,并用0或1填充左邊的高位,a是正數(shù)用0填充,負數(shù)時用1填充。因此,a每右移一次,如果該數(shù)的每一計算有效位都沒有從低位移出時,就相當(dāng)于將a除以2并舍棄了余數(shù)。整數(shù)不斷右移位的最后結(jié)果一定是0,而負數(shù)不斷右移位的最后結(jié)果是-1。 對于byte或short型數(shù)據(jù),an的運算結(jié)果是int型精度。,在進行an運算時,如果a是byte、short或int型數(shù)據(jù),系統(tǒng)總是先計算出n%32的結(jié)果m,然后進行am運算,例如,a33的計算結(jié)果與a1相同。對于long型數(shù)據(jù),系統(tǒng)總是先計算出n%64的結(jié)果m

8、,然后進行am運算。 在下面的例子1中,用戶輸入移位運算的兩個操作元,程序給出右移和左移后的結(jié)果。,返回,3.6位運算符,(1)“按位與”運算符 “那么,表達式 x+y+(-n)*(xy (2)表達式語句 一個表達式的最后加上一個分號就構(gòu)成了一個語句,稱作表達式語句。分號是語句不可缺少的部分。例如,賦值語句: x=23;,(3)復(fù)合語句 可以用“”和“”把一些語句括起來構(gòu)成復(fù)合語句,一個復(fù)合語句也稱作一個代碼塊。例如, z=23+x; System.out.println(hello); (4)控制語句 控制語句包括:條件分支語句、循環(huán)語句和跳轉(zhuǎn)語句。 (5)package 語句和 impor

9、t語句 package語句和import語句與類、對象有關(guān),將在第4章講解。,返回,3.11分支語句,1條件分支語句 (1)if-else語句. if-else語句是Java中的一條語句,由一個“if”、“else”和兩個復(fù)合語句按一定格式構(gòu)成,if-else 語句的格式如下: if(表達式) 若干語句 else 若干語句 一條if-else語句的作用是根據(jù)不同的條件產(chǎn)生不同的操作,執(zhí)行法則如下: if 后面( )內(nèi)的表達式的值必須是boolean型的。如果表達式的值為true,則執(zhí)行緊跟著的復(fù)合語句;如果表達式的值為false,則執(zhí)行else后面的復(fù)合語句。,(2)多條件if-else if

10、-else語句 程序有時需要根據(jù)多條件來選擇某一操作,這時就可以使用if-else if-else語句。if-else if-else語句是Java中的一條語句,由一個“if”、 若干個“else if”、一個“else”與若干個復(fù)合語句按一定規(guī)則構(gòu)成。語句的格式如下: if(表達式1) 若干語句 else if(表達式2) 若干語句 else if(表達式n) 若干語句 else 若干語句 ,有時為了編程的需要,復(fù)合語句中可以沒有任何語句。一條if-else if-else語句的作用是根據(jù)不同的條件產(chǎn)生不同的操作,執(zhí)行法則如下: if 以及else if后面( )內(nèi)的表達式的值必須是bool

11、ean型的。該語句執(zhí)行時,首先計算if后括號中的表達式的值,如果該表達式的值為true,則執(zhí)行緊跟著的復(fù)合語句,然后就結(jié)束整個語句的執(zhí)行;如果if后括號中的表達式的值為false,就依次再計算后面的else if的表達式的值,直到出現(xiàn)某個表達式的值為true為止,然后執(zhí)行該else if后面的復(fù)合語句,結(jié)束整個語句的執(zhí)行。如果所有的表達式的值都是false,就執(zhí)行else后面復(fù)合語句,結(jié)束整個語句的執(zhí)行。 在下面的例子3中,用戶在鍵盤輸入3個數(shù),程序判斷這3個數(shù)能構(gòu)成什么形狀的三角形。,2switch開關(guān)語句 switch 語句是多分支的開關(guān)語句,它的一般格式定義如下: switch(表達式)

12、 case 常量值1: 若干個語句 break; case 常量值2: 若干個語句 break; case 常量值n: 若干個語句 break; default: 若干語句 ,switch語句中表達式的值必須是整型或字符型;常量值1到常量值 n必須也是整型或字符型。switch語句首先計算表達式的值,如果表達式的值和某個case 后面的常量值相同,就執(zhí)行該case里的若干個語句,直到碰到break語句為止。若沒有任何常量值與表達式的值相同,則執(zhí)行default后面的若干個語句。其中default是可有可無的,如果它不存在,并且所有的常量值都和表達式的值不相同,那么switch語句就不會進行任何

13、處理。需要注意的是,在同一個switch語句中,case后的常量值必須互不相同。 下面的例子4使用了switch語句,用戶在鍵盤輸入一個代表月份的整數(shù),程序輸出是該月是在年度的第幾季度。,返回,3.12循環(huán)語句,1while循環(huán) while語句的一般格式: while(表達式) 若干語句 while語句由關(guān)鍵字while、括號中的一個求值為boolean型數(shù)據(jù)的表達式和一個復(fù)合語句組成,其中的復(fù)合語句稱作循環(huán)體,循環(huán)體只有一條語句時,大括號“”可以省略,但最好不要省略,以便增加程序的可讀性。表達式稱作循環(huán)條件。while語句的執(zhí)行規(guī)則是: (1)計算表達式的值,如果該值是true時,就進行(2

14、),否則進行(3)。 (2)執(zhí)行循環(huán)體,再進行(1) (3)結(jié)束while語句的執(zhí)行 while語句執(zhí)行規(guī)則如流程圖3. 5所示。,while語句執(zhí)行規(guī)則如流程圖3. 5所示。,2do-while循環(huán) 一般格式: do 若干語句 while(表達式); do-while循環(huán)和while循環(huán)的區(qū)別是:do-while的循環(huán)體至少被執(zhí)行一次,如圖3.6所示。 下面的例子5分別用while和do-while循環(huán)計算常數(shù)e的近似值:e=1+1/1+1/2!+1/3!+ 。,3for循環(huán) for語句的一般格式: for (表達式1;表達式2;表達式3) 若干語句 for語句由關(guān)鍵字for、括號中用分號分割的3個表達式,以及一個復(fù)合語句組成,其中的“表達式2”必須是一個求值為boolean型數(shù)據(jù)的表達式,而復(fù)合語句稱作循環(huán)體。,for語句的執(zhí)行規(guī)則是: (1)計算“表達式1”,完成必要的初始化工作 (2)判斷“表達式2”的值,若“表達式2”的值為true, 則進行(3),否則進行(4)。 (3)執(zhí)行循環(huán)體,然后計算“表達式3”,以便改變循 環(huán)條件,進行(2)。圖3.9 使用for語句 (4)結(jié)束for語句的執(zhí)行. 一個數(shù)如果恰好等于它的因子之和,這個數(shù)就稱為“完數(shù)”。例如,6=1+2+3。下面的例子6使用for循環(huán)計算出1000內(nèi)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論