第3章_運(yùn)算符、表達(dá)式與語(yǔ)句_第1頁(yè)
第3章_運(yùn)算符、表達(dá)式與語(yǔ)句_第2頁(yè)
第3章_運(yùn)算符、表達(dá)式與語(yǔ)句_第3頁(yè)
第3章_運(yùn)算符、表達(dá)式與語(yǔ)句_第4頁(yè)
第3章_運(yùn)算符、表達(dá)式與語(yǔ)句_第5頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、2022/2/13第 1 頁(yè)Java2實(shí)用教程實(shí)用教程(第第4版版) 第第3章章Email: 福建師范大學(xué)福建師范大學(xué) 林林 暉暉運(yùn)算符、表達(dá)式和語(yǔ)句運(yùn)算符、表達(dá)式和語(yǔ)句 2022/2/13第 2 頁(yè)主要內(nèi)容主要內(nèi)容運(yùn)算符與表達(dá)式運(yùn)算符與表達(dá)式語(yǔ)句概述語(yǔ)句概述if條件分支語(yǔ)句條件分支語(yǔ)句switch開(kāi)關(guān)語(yǔ)句開(kāi)關(guān)語(yǔ)句循環(huán)語(yǔ)句循環(huán)語(yǔ)句break和和continue語(yǔ)句語(yǔ)句數(shù)組與數(shù)組與for語(yǔ)句語(yǔ)句導(dǎo)讀導(dǎo)讀2022/2/13第 3 頁(yè)3.1 運(yùn)算符與表達(dá)式運(yùn)算符與表達(dá)式 JavaJava提供了豐富的運(yùn)算符,如算術(shù)運(yùn)算符、關(guān)提供了豐富的運(yùn)算符,如算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符等。系運(yùn)算符

2、、邏輯運(yùn)算符、位運(yùn)算符等。JavaJava語(yǔ)言中語(yǔ)言中的絕大多數(shù)運(yùn)算符和的絕大多數(shù)運(yùn)算符和C C語(yǔ)言相同,基本語(yǔ)句,如條件語(yǔ)言相同,基本語(yǔ)句,如條件分支語(yǔ)句、循環(huán)語(yǔ)句等也和分支語(yǔ)句、循環(huán)語(yǔ)句等也和C C語(yǔ)言類似,因此,本章語(yǔ)言類似,因此,本章就主要知識(shí)點(diǎn)給予簡(jiǎn)單的介紹就主要知識(shí)點(diǎn)給予簡(jiǎn)單的介紹 。2022/2/13第 4 頁(yè)3.1.1 算術(shù)運(yùn)算符與算術(shù)表達(dá)式算術(shù)運(yùn)算符與算術(shù)表達(dá)式 1加減運(yùn)算符加減運(yùn)算符: +,- 加減運(yùn)算符是二目運(yùn)算符;加減運(yùn)算符的結(jié)合方向是從左到右;加減運(yùn)算符的操作元是整型或浮點(diǎn)型數(shù)據(jù),加減運(yùn)算符的優(yōu)先級(jí)是4級(jí)。 2乘、除和求余運(yùn)算符:乘、除和求余運(yùn)算符: *,/,%以上運(yùn)

3、算符是二目運(yùn)算符,結(jié)合方向是從左到右,乘、除和求余運(yùn)算符的操作元是整型或浮點(diǎn)型數(shù)據(jù)。運(yùn)算符的優(yōu)先級(jí)是3級(jí)。3算術(shù)表達(dá)式算術(shù)表達(dá)式 用算術(shù)符號(hào)和括號(hào)連接起來(lái)的符合java語(yǔ)法規(guī)則的式子,稱為算術(shù)表達(dá)式。2022/2/13第 5 頁(yè)3.1.2 自增,自減運(yùn)算符自增,自減運(yùn)算符 自增、自減運(yùn)算符:自增、自減運(yùn)算符:+,- 是單目運(yùn)算符,可以放在操作元之前,也可以放在操作元之后。操作元必須是一個(gè)整型或浮點(diǎn)型變量。作用是使變量的值增1或減1,如:+x(-x)表示在使用使用x之前之前,先使x的值增(減)1。x+(x-)表示在使用使用x之后之后,使x的值增(減)1。2022/2/13第 6 頁(yè)3.1.3 算

4、術(shù)混合運(yùn)算的精度算術(shù)混合運(yùn)算的精度 精度從精度從“低低”到到“高高”排列的順序是:排列的順序是: byte short char int long float double Java在計(jì)算算術(shù)表達(dá)式的值時(shí),使用下列計(jì)算精度規(guī)則:1如果表達(dá)式中有雙精度浮點(diǎn)數(shù)(double型數(shù)據(jù)),則按雙精度進(jìn)行運(yùn)算按雙精度進(jìn)行運(yùn)算。2如果表達(dá)式中最高精度是單精度浮點(diǎn)數(shù)(float型數(shù)據(jù)),則按單精度進(jìn)行運(yùn)算按單精度進(jìn)行運(yùn)算。3如果表達(dá)式中最高精度是long型整數(shù),則按按long精度進(jìn)精度進(jìn)行運(yùn)算行運(yùn)算。4如果表達(dá)式中最高精度低于int型整數(shù),則按按int精度進(jìn)精度進(jìn)行運(yùn)算行運(yùn)算。2022/2/13第 7 頁(yè)3.

5、1.4 關(guān)系運(yùn)算符與關(guān)系表達(dá)式關(guān)系運(yùn)算符與關(guān)系表達(dá)式 關(guān)系運(yùn)算符關(guān)系運(yùn)算符: , = , = , = , != 關(guān)系運(yùn)算符是二目運(yùn)算符,用來(lái)比較兩個(gè)值的關(guān)系。關(guān)系運(yùn)算符的運(yùn)算結(jié)果是運(yùn)算結(jié)果是boolean型型,當(dāng)運(yùn)算符對(duì)應(yīng)的關(guān)系成立時(shí),運(yùn)算結(jié)果是true,否則是false。 2022/2/13第 8 頁(yè)3.1.5 邏輯運(yùn)算符與邏輯表達(dá)式邏輯運(yùn)算符與邏輯表達(dá)式 邏輯運(yùn)算符包括邏輯運(yùn)算符包括 &,|,!其中&、|為二目運(yùn)算符,實(shí)現(xiàn)邏輯與、邏輯或;!為單目運(yùn)算符,實(shí)現(xiàn)邏輯非。 邏輯運(yùn)算符的操作元必須是boolean型數(shù)據(jù),邏輯運(yùn)算符可以用來(lái)連接關(guān)系表達(dá)式。 2022/2/13第 9 頁(yè)3.1.6 賦

6、值運(yùn)算符與賦值表達(dá)式賦值運(yùn)算符與賦值表達(dá)式 賦值運(yùn)算符:賦值運(yùn)算符:= 賦值運(yùn)算符是二目運(yùn)算符,左面的操作元必須是操作元必須是變量變量,不能是常量或表達(dá)式。 賦值運(yùn)算符的優(yōu)先級(jí)較低,是14級(jí),結(jié)合方向右到左。 賦值表達(dá)式的值就是“=”左面變量的值。注意注意: :不要將賦值運(yùn)算符“=”與等號(hào)邏輯運(yùn)算符“=”混淆。2022/2/13第 10 頁(yè)3.1.7 位運(yùn)算符位運(yùn)算符 對(duì)兩個(gè)整型數(shù)據(jù)實(shí)施位運(yùn)算位運(yùn)算,即對(duì)兩個(gè)整型數(shù)據(jù)對(duì)應(yīng)的位位進(jìn)行運(yùn)算得到一個(gè)新的整型數(shù)據(jù)。1“按位與按位與”運(yùn)算運(yùn)算“按位與”運(yùn)算符“&”是雙目運(yùn)算符。2“按位或按位或”運(yùn)算運(yùn)算“按位或”運(yùn)算符:“|”是二目運(yùn)算符。3“按位非按位

7、非”運(yùn)算運(yùn)算“按位非”運(yùn)算符:“”是單目運(yùn)算符。4“按位異或按位異或”運(yùn)算運(yùn)算“按位異或”運(yùn)算符:“”是二目運(yùn)算符。 注意注意: :參與運(yùn)算的是兩個(gè)整型數(shù)據(jù)、結(jié)果也是整型數(shù)據(jù)。參與運(yùn)算的是兩個(gè)整型數(shù)據(jù)、結(jié)果也是整型數(shù)據(jù)。2022/2/13第 11 頁(yè)在下面的例子例子1中,利用“異或”運(yùn)算的性質(zhì),對(duì)幾個(gè)字符進(jìn)行加密并輸出密文,然后再解密,運(yùn)行效果如圖3.1。 例子例子12022/2/13第 12 頁(yè)3.1.8 instanceof instanceof 運(yùn)算符運(yùn)算符 instanceof 運(yùn)算符運(yùn)算符是二目運(yùn)算符,左面的操作元是一個(gè)對(duì)象對(duì)象;右面是一個(gè)類類。當(dāng)左面的對(duì)象是右面的類或子類創(chuàng)建的對(duì)象

8、時(shí),該運(yùn)算符運(yùn)算的結(jié)果是true ,否則是false。 2022/2/13第 13 頁(yè)3.1.9 運(yùn)算符綜述運(yùn)算符綜述 Java的表達(dá)式就是用運(yùn)算符連接起來(lái)的符合符合Java規(guī)規(guī)則則的式子。運(yùn)算符的優(yōu)先級(jí)運(yùn)算符的優(yōu)先級(jí)決定了表達(dá)式中運(yùn)算執(zhí)行的先后順序。在編寫(xiě)程序時(shí)盡量的使用括號(hào)()運(yùn)算符號(hào)盡量的使用括號(hào)()運(yùn)算符號(hào)來(lái)實(shí)現(xiàn)想要的運(yùn)算次序,以免產(chǎn)生難以閱讀或含糊不清的計(jì)算順序。運(yùn)算符的結(jié)合性決定了并列的相同級(jí)別運(yùn)算符并列的相同級(jí)別運(yùn)算符的先后順序 。 2022/2/13第 14 頁(yè)3.2 語(yǔ)句概述語(yǔ)句概述 JavaJava里的語(yǔ)句可分為以下六類。里的語(yǔ)句可分為以下六類。1方法調(diào)用語(yǔ)句。方法調(diào)用語(yǔ)句

9、。如:如:System.out.println( Hello);System.out.println( Hello);2表達(dá)式語(yǔ)句表達(dá)式語(yǔ)句 表示式尾加上分號(hào)。比如賦值語(yǔ)句:表示式尾加上分號(hào)。比如賦值語(yǔ)句:x=23;x=23;3復(fù)合語(yǔ)句復(fù)合語(yǔ)句 可以用可以用 把一些語(yǔ)句括起來(lái)構(gòu)成復(fù)合語(yǔ)句,如:把一些語(yǔ)句括起來(lái)構(gòu)成復(fù)合語(yǔ)句,如: z=123+x;z=123+x; System.out.println(How are you); System.out.println(How are you); 4空語(yǔ)句??照Z(yǔ)句。 一個(gè)分號(hào)也是一條語(yǔ)句,稱做空語(yǔ)句。一個(gè)分號(hào)也是一條語(yǔ)句,稱做空語(yǔ)句。5控制語(yǔ)句。控制

10、語(yǔ)句??刂普Z(yǔ)句分為條件分支語(yǔ)句、開(kāi)關(guān)語(yǔ)句和循控制語(yǔ)句分為條件分支語(yǔ)句、開(kāi)關(guān)語(yǔ)句和循環(huán)語(yǔ)句。環(huán)語(yǔ)句。6package語(yǔ)句和語(yǔ)句和 import語(yǔ)句。語(yǔ)句。它們和類、對(duì)象有關(guān),它們和類、對(duì)象有關(guān),將在第將在第4章講解。章講解。2022/2/13第 15 頁(yè)3.3 ifif條件分支語(yǔ)句條件分支語(yǔ)句 條件分支語(yǔ)句按著語(yǔ)法格式可細(xì)分為三種形式, if語(yǔ)句 if-else語(yǔ)句 if-else if- - else if -else 語(yǔ)句2022/2/13第 16 頁(yè)3.3.1 ifif語(yǔ)句語(yǔ)句 if語(yǔ)句是單條件分支語(yǔ)句,語(yǔ)句是單條件分支語(yǔ)句,即根據(jù)一個(gè)條件來(lái)控制程序執(zhí)行的流程(如圖3.2)。 if 語(yǔ)句的

11、語(yǔ)法格式: if(表達(dá)式)表達(dá)式) 若干語(yǔ)句若干語(yǔ)句 2022/2/13第 17 頁(yè)例子例子2將變量a,b,c內(nèi)存中的數(shù)值按大小順序進(jìn)行互換(從小到大排列)。 public class Example3_2 public static void main(String args) int a = 9,b = 5,c = 7,t=0; if(ba) t = a; a = b; b = t; if(ca) t = a; a = c; c = t; if(cb) t = b; b = c; c = t; System.out.println(a=+a+,b=+b+,c=+c); 例子例子22022/

12、2/13第 18 頁(yè)3.3.2 if-else if-else 語(yǔ)句語(yǔ)句 if-else 語(yǔ)句是雙條件分支語(yǔ)句,即根據(jù)一個(gè)條件來(lái)控制程序執(zhí)行的流程。 if-else 語(yǔ)句的語(yǔ)法格式:語(yǔ)句的語(yǔ)法格式:if(表達(dá)式)(表達(dá)式) 若干語(yǔ)句若干語(yǔ)句 else 若干語(yǔ)句若干語(yǔ)句 2022/2/13第 19 頁(yè)例子例子3中有兩條if-else語(yǔ)句,其作用是根據(jù)成績(jī)輸出相應(yīng)的信息,運(yùn)行效果如圖3.4。 例子例子32022/2/13第 20 頁(yè)3.3.3 if-else if-else if-else if-else 語(yǔ)句語(yǔ)句 if-else if-else 語(yǔ)句是多條件分支語(yǔ)句,即根據(jù)多個(gè)條件來(lái)控制程序執(zhí)行

13、的流程。 if-else if-else語(yǔ)句的語(yǔ)法格式:語(yǔ)句的語(yǔ)法格式:if(表達(dá)式(表達(dá)式) 若干語(yǔ)句若干語(yǔ)句 else if(表達(dá)式(表達(dá)式) 若干語(yǔ)句若干語(yǔ)句 else 若干語(yǔ)句若干語(yǔ)句 2022/2/13第 21 頁(yè)3.4 switchswitch開(kāi)關(guān)語(yǔ)句開(kāi)關(guān)語(yǔ)句 switch 語(yǔ)句是單條件多分支的開(kāi)關(guān)語(yǔ)句,它的一般格式定義如下(其中break語(yǔ)句是可選的): switch(表達(dá)式表達(dá)式) case 常量值常量值1: 若干個(gè)語(yǔ)句若干個(gè)語(yǔ)句 break; case 常量值常量值2: 若干個(gè)語(yǔ)句若干個(gè)語(yǔ)句 break; . case 常量值常量值n: 若干個(gè)語(yǔ)句若干個(gè)語(yǔ)句 break; d

14、efault: 若干語(yǔ)句若干語(yǔ)句2022/2/13第 22 頁(yè)例子例子4 4使用了switch語(yǔ)句判斷用戶從鍵盤輸入的正整數(shù)是否為中獎(jiǎng)號(hào)碼。 例子例子4 4import java.util.Scanner;public class Example3_4 public static void main(String args) int number = 0; System.out.println(輸入正整數(shù)輸入正整數(shù)(回車確定回車確定); Scanner reader = new Scanner(System.in); number = reader.nextInt(); switch(numb

15、er) case 9 : case 131 : case 12 : System.out.println(number+是三等獎(jiǎng)是三等獎(jiǎng)); break; case 209 : case 596 : case 27 : System.out.println(number+是二等獎(jiǎng)是二等獎(jiǎng)); break; case 875 : case 316 : case 59 : System.out.println(number+是一等獎(jiǎng)是一等獎(jiǎng)); break; default: System.out.println(number+未中獎(jiǎng)未中獎(jiǎng)); 2022/2/13第 23 頁(yè)3.5 3.5 循環(huán)語(yǔ)

16、句循環(huán)語(yǔ)句 3.5.1 3.5.1 forfor循環(huán)語(yǔ)句循環(huán)語(yǔ)句 for語(yǔ)句的語(yǔ)法格式:語(yǔ)句的語(yǔ)法格式: for (表達(dá)式表達(dá)式1; 表達(dá)式表達(dá)式2; 表達(dá)式表達(dá)式3) 若干語(yǔ)句若干語(yǔ)句 for語(yǔ)句的執(zhí)行規(guī)則是:語(yǔ)句的執(zhí)行規(guī)則是: (1)計(jì)算“表達(dá)式1”,完成必要的初始化工作。 (2)判斷“表達(dá)式2”的值,若“表達(dá)式2”的值為true,則進(jìn)行(3),否則進(jìn)行(4)。 (3)執(zhí)行循環(huán)體,然后計(jì)算“表達(dá)式3”,以便改變循環(huán)條件,進(jìn)行(2)。 (4)結(jié)束for語(yǔ)句的執(zhí)行。 2022/2/13第 24 頁(yè)例子例子5計(jì)算8+88+888+8888 的前12項(xiàng)和 例子例子5public class Exa

17、mple3_5 public static void main(String args) long sum = 0,a = 8,item = a,n = 12,I = 1; for(i=1;i=n;i+) sum = sum+item; item = item*10+a; System.out.println(sum); 2022/2/13第 25 頁(yè)3.5.2 while while 循環(huán)循環(huán) while語(yǔ)句的語(yǔ)法格式:語(yǔ)句的語(yǔ)法格式: while (表達(dá)式表達(dá)式) 若干語(yǔ)句若干語(yǔ)句 while語(yǔ)句的執(zhí)行規(guī)則是:語(yǔ)句的執(zhí)行規(guī)則是: (1)計(jì)算表達(dá)式的值,如果該值是true時(shí),就進(jìn)行(2),否

18、則執(zhí)行(3)。 (2)執(zhí)行循環(huán)體,再進(jìn)行(1)。 (3)結(jié)束while語(yǔ)句的執(zhí)行。 2022/2/13第 26 頁(yè)3.5.3 do-whiledo-while循環(huán)循環(huán) do-while語(yǔ)句的語(yǔ)法格式:語(yǔ)句的語(yǔ)法格式: do 若干語(yǔ)句若干語(yǔ)句 while(表達(dá)式表達(dá)式); do- while語(yǔ)句的執(zhí)行規(guī)則是:語(yǔ)句的執(zhí)行規(guī)則是: (1)執(zhí)行循環(huán)體,再進(jìn)行(2)。 (2)計(jì)算表達(dá)式的值,如果該值是true時(shí),就進(jìn)行(1),否則執(zhí)行(3)。 (3)結(jié)束while語(yǔ)句的執(zhí)行。 2022/2/13第 27 頁(yè)例子例子6 6用while語(yǔ)句計(jì)算1+1/2!+1/3!+1/4! 的前20項(xiàng) 例子例子6 6pu

19、blic class Example3_6 public static void main(String args) double sum = 0,item = 1; int i = 1,n = 20; while(i=n) sum = sum+item; i = i+1; item = item*(1.0/i); System.out.println(sum=+sum); 2022/2/13第 28 頁(yè)3.6 breakbreak和和continuecontinue語(yǔ)句語(yǔ)句 break和continue語(yǔ)句是用關(guān)鍵用關(guān)鍵breakbreak或或continuecontinue加上分號(hào)構(gòu)成的語(yǔ)

20、句加上分號(hào)構(gòu)成的語(yǔ)句。 在循環(huán)體中可以使用break語(yǔ)句和continue語(yǔ)句。 如果在某次循環(huán)中執(zhí)行了break語(yǔ)句,那么整個(gè)循環(huán)語(yǔ)句就結(jié)束。如果在某次循環(huán)中執(zhí)行了continue語(yǔ)句,那么本次循環(huán)就結(jié)束,即不再執(zhí)行本次循環(huán)中循環(huán)體中continue語(yǔ)句后面的語(yǔ)句,而轉(zhuǎn)入進(jìn)行下一次循環(huán)。 2022/2/13第 29 頁(yè)例子例子7使用了continue和break語(yǔ)句 計(jì)算1+3+5輸出100內(nèi)的素?cái)?shù).例子例子7public class Example3_7 public static void main(String args) int sum=0,i,j; for( i=1;i=10;i+

21、) if(i%2=0) /計(jì)算計(jì)算1+3+5+7+9 continue; sum=sum+i; System.out.println(sum=+sum); for(j=2;j=100;j+) /求求100以內(nèi)的素?cái)?shù)以內(nèi)的素?cái)?shù) for( i=2;ij/2) System.out.println(+j+是素?cái)?shù)是素?cái)?shù)); 2022/2/13第 30 頁(yè)3.7 forfor語(yǔ)句與數(shù)組語(yǔ)句與數(shù)組 JDK1.5后,對(duì)for語(yǔ)句的功能給予擴(kuò)充、增強(qiáng),以便更好地遍歷數(shù)組。語(yǔ)法格式如下:for(聲明循環(huán)變量:數(shù)組的名字) 其中,聲明的循環(huán)變量的類型必須和數(shù)組的類型相同。這種形式的for語(yǔ)句類似自然語(yǔ)言中的“for each”語(yǔ)句,為了便于理解上述

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論