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

下載本文檔

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

文檔簡介

1、PPT注意事項(xiàng): 當(dāng)前PPT課件文件必須和提供的源代碼文件夾“代碼”在同一目錄中即不要移動文件夾“代碼”的默認(rèn)位置。,第3章 運(yùn)算符、表達(dá)式和語句,配合例子源代碼一起使用,課件制作人 張躍平,導(dǎo)讀,主要內(nèi)容 運(yùn)算符與表達(dá)式 語句概述 if條件分支語句 switch開關(guān)語句 循環(huán)語句 break和continue語句 數(shù)組與for語句 重點(diǎn)和難點(diǎn) 重點(diǎn):運(yùn)算符、表達(dá)式和各種控制語句 難點(diǎn):各種控制語句用法,3.1 運(yùn)算符與表達(dá)式,Java提供了豐富的運(yùn)算符,如算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符等。 Java語言中的絕大多數(shù)運(yùn)算符和C語言相同,基本語句,如條件分支語句、循環(huán)語句等也和C語

2、言類似,因此,本章就主要知識點(diǎn)給予簡單的介紹 。,3.1.1 算術(shù)運(yùn)算符與算術(shù)表達(dá)式,加減運(yùn)算符: +,- 加減運(yùn)算符是二目運(yùn)算符;加減運(yùn)算符的結(jié)合方向是從左到右;加減運(yùn)算符的操作元是整型或浮點(diǎn)型數(shù)據(jù),加減運(yùn)算符的優(yōu)先級是4級。 乘、除和求余運(yùn)算符: * / % 以上運(yùn)算符是二目運(yùn)算符,結(jié)合方向是從左到右,乘、除和求余運(yùn)算符的操作元是整型或浮點(diǎn)型數(shù)據(jù)。運(yùn)算符的優(yōu)先級是3級。 算術(shù)表達(dá)式 用算術(shù)符號和括號連接起來的符合java語法規(guī)則的式子,稱為算術(shù)表達(dá)式。 如:x+2*y-30+3*(y+5),3.1.2 自增,自減運(yùn)算符,自增、自減運(yùn)算符:+,- 單目運(yùn)算符,可以放在操作元之前,也可以放在操

3、作元之后。操作元必須是一個整型或浮點(diǎn)型變量。作用是使變量的值增1或減1,如: +x(-x)表示在使用x之前,先使x的值增(減)1。 x+(x-)表示在使用x之后,使x的值增(減)1。 例如: int f=2; int m=2; int x=(f*m+)+m; /x=7; int y=(f*+m)+m; /y=9;,3.1.3 算術(shù)混合運(yùn)算的精度,java中數(shù)據(jù)類型的精度從“低”到“高”排列的順序是: byte short char int long float double Java在計(jì)算算術(shù)表達(dá)式的值時,使用下列計(jì)算精度規(guī)則: 如果表達(dá)式中有雙精度浮點(diǎn)數(shù)(double型數(shù)據(jù)),則按雙精度進(jìn)行

4、運(yùn)算. 如果表達(dá)式中最高精度是單精度浮點(diǎn)數(shù)(float型數(shù)據(jù)),則按單精度進(jìn)行運(yùn)算. 如果表達(dá)式中最高精度是long型整數(shù),則按long精度進(jìn)行運(yùn)算. 如果表達(dá)式中最高精度低于int型整數(shù),則按int精度進(jìn)行運(yùn)算. char型數(shù)據(jù)和整型數(shù)據(jù)運(yùn)算結(jié)果的精度是int。,例如:5/2的結(jié)果是2,要想得到2.5,必須寫成5.0/2或5.0f/2。 例如:byte x=7; 則執(zhí)行表達(dá)式 B+x; 的結(jié)果是int型。,3.1.4 關(guān)系運(yùn)算符與關(guān)系表達(dá)式,關(guān)系運(yùn)算符: , = , 8,(x+y)80。,3.1.5 邏輯運(yùn)算符與邏輯表達(dá)式,邏輯運(yùn)算符包括: if( (x=0)=0) | (y=20)=20)

5、 ) System.out.println(現(xiàn)在y的值是:+y); ,3.1.6 賦值運(yùn)算符與賦值表達(dá)式,賦值運(yùn)算符:= 賦值運(yùn)算符是二目運(yùn)算符,左面的操作元必須是變量,不能是常量或表達(dá)式。 賦值運(yùn)算符的優(yōu)先級較低,是14級,結(jié)合方向右到左。 賦值表達(dá)式的值就是“=”左面變量的值。 注意:不要將賦值運(yùn)算符“=”與等號邏輯運(yùn)算符“=”混淆。 例如:x=20; b=true;,3.1.7 位運(yùn)算符,位運(yùn)算符:是指對兩個整型數(shù)據(jù)按照對應(yīng)的位進(jìn)行運(yùn)算,結(jié)果為新的整型數(shù)據(jù)。 “按位與”運(yùn)算 “ char secret=8; a1=(char)(a1secret); a2=(char)(a2secret)

6、; a3=(char)(a3secret); a4=(char)(a4secret); System.out.println(密文:+a1+a2+a3+a4); a1=(char)(a1secret); a2=(char)(a2secret); a3=(char)(a3secret); a4=(char)(a4secret); System.out.println(原文:+a1+a2+a3+a4); ,3.1.8 instanceof 運(yùn)算符,instanceof 運(yùn)算符 是二目運(yùn)算符,左面的操作元是一個對象;右面是一個類。當(dāng)左面的對象是右面的類或子類創(chuàng)建的對象時,該運(yùn)算符運(yùn)算的結(jié)果是true

7、 ,否則是false。 例題:,class Test public static void main (String argv) String s=new String(“abc”); if(s instanceof String) System.out.println(“s is a string”); B b=new B(); if(b instanceof Object) System.out.println(b is definitedly an object); ,3.1.9 運(yùn)算符綜述,Java的表達(dá)式就是用運(yùn)算符連接起來的符合Java規(guī)則的式子。 運(yùn)算符的優(yōu)先級決定了表達(dá)式中運(yùn)算

8、執(zhí)行的先后順序。 在編寫程序時盡量使用括號()運(yùn)算符號來實(shí)現(xiàn)想要的運(yùn)算次序,以免產(chǎn)生難以閱讀或含糊不清的計(jì)算順序。 運(yùn)算符的結(jié)合性決定了具有相同級別運(yùn)算符的先后順序 。,3.2 語句概述,Java里的語句可分為以下六類 方法調(diào)用語句:如:System.out.println( Hello); 表達(dá)式語句:表示式尾加上分號。比如賦值語句:x=23; 復(fù)合語句:可以用 把一些語句括起來構(gòu)成復(fù)合語句, 如: z=123+x; System.out.println(How are you); 空語句:一個分號也是一條語句,稱做空語句。 控制語句:控制語句分為條件分支語句、開關(guān)語句和循環(huán)語句。 pack

9、age語句和 import語句:它們和類、對象有關(guān),將在第4章講解。,3.3 if條件分支語句,條件分支語句按著語法格式可細(xì)分為三種形式: if語句 if-else語句 if-else if- - else if -else 語句,3.3.1 if語句,if語句是單條件分支語句,即根據(jù)一個條件來控制程序執(zhí)行的流程(如圖3.2)。 if 語句的語法格式: if(表達(dá)式) 若干語句 ,注:表達(dá)式的值必須是boolean型的;不能用0代表false;用1代表true;,例題,例子2,public class Example3_2 public static void main(String args

10、) 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); ,例子2將變量a,b,c內(nèi)存中的數(shù)值按大小順序進(jìn)行互換(從小到大排列)。,3.3.2 if-else 語句,if-else 語句是雙條件分支語句,即根據(jù)一個條件來控制程序執(zhí)行的流程。 if-else 語句的語法格式: if(表達(dá)式) 若干語句 else 若干語句 ,例題,例子3中有兩條if-else

11、語句,其作用是根據(jù)成績輸出相應(yīng)的信息,運(yùn)行效果如圖3.4。,例子3,3.3.3 if-else if-else 語句,if-elseif 語句是多條件分支語句,即根據(jù)多個條件來控制程序執(zhí)行的流程。 if-else if-else語句的語法格式: if(表達(dá)式) 若干語句 else if(表達(dá)式) 若干語句 else 若干語句 ,多分支流程示意圖,3.4 switch開關(guān)語句,switch 語句是單條件多分支的開關(guān)語句 它的一般格式定義如下(其中break語句是可選的): switch(表達(dá)式) case 常量值1: 若干個語句 break; case 常量值2: 若干個語句 break; .

12、case 常量值n: 若干個語句 break; default: 若干語句 ,說明: 1)表達(dá)式的值必須是:byte,short, Int,char不能是String或者long型的; (與int兼容類型) 2)這里面必須要有break語句, 否則,就會匹配顯示從匹配的常量值 到最后。 3)default語句放的位置是任意的。 4)檢查時case 常量必須與switch表達(dá)式 可用的類型相同。,例子4使用了switch語句判斷用戶從鍵盤輸入的正整數(shù)是否為中獎號碼。,import java.util.Scanner; public class Example3_4 public static v

13、oid main(String args) int number = 0; System.out.println(輸入正整數(shù)(回車確定); Scanner reader = new Scanner(System.in); number = reader.nextInt(); switch(number) case 9 : case 131 : case 12 : System.out.println(number+是三等獎); break; case 209 : case 596 : case 27 : System.out.println(number+是二等獎); break; case

14、875 : case 316 : case 59 : System.out.println(number+是一等獎); break; default: System.out.println(number+未中獎); ,例子4,3.5.1 for循環(huán)語句,for語句的語法格式: for (表達(dá)式1; 表達(dá)式2; 表達(dá)式3) 若干語句 for語句的執(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語句的執(zhí)行。,

15、3.5 循環(huán)語句,例題,例子5:計(jì)算8+88+888+8888 的前12項(xiàng)和。 public class Example3_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); ,例子5,3.5.2 while 循環(huán),while語句的語法格式: while (表達(dá)式) 若干語句 while語句的執(zhí)行規(guī)則是: (1)計(jì)算表達(dá)式的值,如果該值是

16、true時, 就進(jìn)行(2),否則執(zhí)行(3)。 (2)執(zhí)行循環(huán)體,再進(jìn)行(1)。 (3)結(jié)束while語句的執(zhí)行。,3.5.3 do-while循環(huán),do-while語句的語法格式: do 若干語句 while(表達(dá)式); do- while語句的執(zhí)行規(guī)則是: (1)執(zhí)行循環(huán)體,再進(jìn)行(2)。 (2)計(jì)算表達(dá)式的值,如果該值是true時, 就進(jìn)行(1),否則執(zhí)行(3)。 (3)結(jié)束while語句的執(zhí)行。,例題,例子6用while語句計(jì)算1+1/2!+1/3!+1/4! 的前20項(xiàng),例子6,public class Example3_6 public static void main(String

17、 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); ,3.6 break和continue語句,break和continue語句是用關(guān)鍵break或continue加上分號構(gòu)成的語句。 在循環(huán)體中可以使用break語句和continue語句。 如果在某次循環(huán)中執(zhí)行了break語句,那么整個循環(huán)語句就結(jié)束。如果在某次循環(huán)中執(zhí)行了continue語句,那么本次循環(huán)就結(jié)束,即不再執(zhí)

18、行本次循環(huán)中循環(huán)體中continue語句后面的語句,而轉(zhuǎn)入進(jìn)行下一次循環(huán)。,例題,例子7使用了continue和break語句,計(jì)算1+3+5輸出100內(nèi)的素?cái)?shù).,例子7,public class Example3_7 public static void main(String args) int sum=0,i,j; for( i=1;ij/2) System.out.println(+j+是素?cái)?shù)); ,3.7 for語句與數(shù)組,JDK1.5后,對for語句的功能給予擴(kuò)充、增強(qiáng),以便更好地遍歷數(shù)組。語法格式如下: for(聲明循環(huán)變量:數(shù)組的名字) 其中,聲明的循環(huán)變量的類型必須和數(shù)組的類型相同。這種形式的for語句類似自然語言中的“for each”語句,為了便于理解上述for語句,可以將這種形式的for語句翻譯成“對于循環(huán)變量依次取數(shù)組的每一個元素的值”。,例題,例子8分別使用for語句的傳統(tǒng)方式和改進(jìn)方式遍歷數(shù)組。,例子8,public class Ex

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論