chapterJava程序設計基礎PPT教學課件_第1頁
chapterJava程序設計基礎PPT教學課件_第2頁
chapterJava程序設計基礎PPT教學課件_第3頁
chapterJava程序設計基礎PPT教學課件_第4頁
chapterJava程序設計基礎PPT教學課件_第5頁
已閱讀5頁,還剩146頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、3.1 Java程序的組成程序的組成/FileStructure.javapackage myPackage;import javax.swing.JOptionPane; /導入類JOptionPanepublic class FileStructure public static void main( String args) JOptionPane.showMessageDialog( null, 歡迎你學習Java程序基礎!); System.exit(0); / 終止應用程序 【例3-1】 Java程序的結構包的認識。此程序編譯后生成的字節(jié)碼文件FileStructure.class

2、放入包myPackage中第1頁/共151頁3.1 Java程序的組成程序的組成 Java源程序的3個要素(1)包聲明(package statement)-可選; (2)任意數(shù)量的導入語句(import statements)-可選;(3)任意數(shù)量的類定義和接口定義。 說明 3個要素只能按上述順序出現(xiàn)。 每個源文件最多只能有一個public類或接口,且此時源文件只能以這個public類或接口命名。 類或接口中包括成員(屬性和方法)及語句,組成它們的語言單位包括常量、變量、表達式、關鍵字等。第2頁/共151頁1、Java字符集字符集 大小寫的英文字母:A Z,a z 數(shù)字字符:09 特殊字符:

3、 空格 ! ! # # % % & & $ $ _(_(下劃線) +) + * * = = - - / / “ ; ; . ., ,( ) 第3頁/共151頁2、詞法記號、詞法記號 關鍵字:Java:Java預定義的單詞。 標識符: :程序員聲明的單詞,命名程序正文中的一些實體。 如類名、變量名、方法名、對象名等。 常 量: :在程序中直接使用符號表示的數(shù)據(jù)。 (文字)包括: :數(shù)字、字符、字符串和布爾型文字。 如:123:123,4.564.56,A A,”HelloHello”,truetrue 操作符: :用于各種運算的符號,如:+,-,*等。 分隔符: :用于分隔各個詞法記號或程序正文

4、。 如:( ) , : ; 空白符: :用于指示單詞的開始和結束位置。 空格(spacespace)、制表符(TABTAB鍵產生的字符)、 換行符(EnterEnter鍵所產生的字符)和注釋的總稱。第4頁/共151頁3、關鍵字、關鍵字(Keywords)abstract break byte boolean catch caseclass char continue default double doelse extends false final float forfinally final if import implements intinterface instanceof long

5、length native newnull package private public protected returnswitch synchronized short static super try true this throw throws thread safe transient void while第5頁/共151頁4、標識符、標識符(identifier)JavaJava標識符的構成規(guī)則: : 以字母、下劃線(_)或美元符$開始。 可以由大寫字母、小寫字母、下劃線(_)、數(shù)字09組成。 不能是Java的關鍵字。 大寫字母和小寫字母代表不同的標識符。 標識符的長度是任意的。

6、不要使用系統(tǒng)預定義的符號,以免引起混淆。 例如:true、false、null代表的是特殊的值,不是關鍵字,但用戶也不要使用這些名字。標識符的作用:用于標記程序中的名字,類名、變量名、常量名、方法名等。第6頁/共151頁4、標識符、標識符identifier ,userName , User_Name, _sys_value, $change2mail, room#, class合法的標識符非法的標識符第7頁/共151頁4、標識符、標識符 Java中的命名規(guī)則 類名:使用名詞,含有大小寫字母,每個詞的首字母大寫。如HelloWorld。 方法名:使用動詞,含有大小寫字母,首字母小寫,其余各詞的

7、首字母大寫。大寫字母做詞之間的間隔。不要使用下劃線。如getName、setAddress、search。 簡單類型常量名:應該全部為大寫字母,詞與詞之間用下劃線分隔。如PI、TIME_COMPAROR。 所有的對象、類和全局變量名:使用混合大小寫,首字母小寫,變量中不要使用下劃線。第8頁/共151頁3.2 基本數(shù)據(jù)類型、變量與常量基本數(shù)據(jù)類型、變量與常量 Java的數(shù)據(jù)類型 基本數(shù)據(jù)類型:Java語言本身定義的數(shù)據(jù)類型。 復合數(shù)據(jù)類型(引用類型):用戶根據(jù)自己的需要定義的數(shù)據(jù)類型。 第9頁/共151頁Java的數(shù)據(jù)類型的數(shù)據(jù)類型數(shù)據(jù)類型基本數(shù)據(jù)類型復合數(shù)據(jù)類型類:class布爾類型:bool

8、ean數(shù)組接口:interface字符類型:char數(shù)值類型浮點數(shù)類型:float,double整數(shù)類型byte,short,int,long第10頁/共151頁數(shù)據(jù)類型數(shù)據(jù)類型關鍵字關鍵字占用位數(shù)占用位數(shù)取值范圍取值范圍布爾型布爾型boolean8true, false字符型字符型char16u 0000 u FFFF 字節(jié)型字節(jié)型byte8-128127短整型短整型short16-3276832767整型整型int32-2147483648 2147483647長整型長整型long64-2-63263-1浮點型浮點型float321.40129846432481707e-453.40282

9、346638528860e+38 雙精度型雙精度型double644.94065645841246544e-3241.79769313486231570e+308d 3.2.1 基本數(shù)據(jù)類型基本數(shù)據(jù)類型第11頁/共151頁第12頁/共151頁第13頁/共151頁第14頁/共151頁整型常量的類型整型常量的類型 整型常量按照所占用的內存大小分類 整型(int)常量:占用32位。 如123,-34 長整型(long)常量:占用64位,長整型常量的尾部有一個大寫的L或小寫的l。 如-386L,017777l 說明:java中的整型常量默認為int,表示long型整數(shù)后面加后綴。第15頁/共151頁2

10、. 浮點型常量浮點型常量 浮點型常量:表示可以含有小數(shù)部分的數(shù)值常量。 根據(jù)占用內存長度的不同分類 單精度浮點常量:占用32位內存,用F、f表示。如:19.4F,3.0513E3,8701.52f 雙精度浮點常量:占用64位內存,用帶D或d或不加后綴的數(shù)值表示, 如:2.433E-5D,700041.273d,3.1415。 說明:在java中的實型常量默認為double,所以寫單精度的實數(shù)時要在數(shù)字后面寫f,如3.14f。第16頁/共151頁第17頁/共151頁3.字符常量字符常量 字符常量:用一對單引號括起的單個字符。 可見字符:a,Z,8,# 轉義字符 n t ddd : 八進制表示一個

11、字符 uxxxx: 十六進制無符號整數(shù),表示Unicode碼。 如: : 101101 用八進制表示一個字符AA u0041 u0041 用UnicodeUnicode碼表示一個AA第18頁/共151頁3.字符常量字符常量三位8進制數(shù)表示的字符 ddd 四位16進制數(shù)表示的字符反斜線單引號雙引號回車表格符換行水平制表符tab退格含含義義 u005c u0027 u0022 u000d u000c u000a u0009 u0008對對應應Unicode碼碼 uxxxx ” r f n t b轉轉義義字字符符三位8進制數(shù)表示的字符 ddd 四位16進制數(shù)表示的字符反斜線單引號雙引號回車表格符換行

12、水平制表符tab退格含含義義 u005c u0027 u0022 u000d u000c u000a u0009 u0008對對應應Unicode碼碼 uxxxx ” r f n t b轉轉義義字字符符第19頁/共151頁3.字符常量字符常量 字符數(shù)據(jù)在內存中的存儲形式:一個字符用兩個字節(jié)的Unicode碼表示。 Unicode碼與ASCII的對應關系:高2位字節(jié)00,低2位字節(jié)是ASCII值。第20頁/共151頁4.字符串常量字符串常量 字符串常量是用雙引號括起的一串字符(可以0個)。 例子:Hello, My nJava, How old are you? 1234, My + name

13、注意:字符串常量是String類的對象。第21頁/共151頁5.布爾常量布爾常量 布爾常量:true(真)和false(假)。 在流控制中經常用到布爾常量。 if (條件) 動作1 else 動作2 注意:Java是一種嚴格的類型語言,它不允許數(shù)值類型和布爾類型之間進行轉換。 第22頁/共151頁3.2.3 變量變量 變量:在程序的運行過程中數(shù)值可變的數(shù)據(jù), 用來記錄運算中間結果或保存數(shù)據(jù)。 變量的聲明數(shù)據(jù)類型 變量名1,變量名2,變量名n;例如:int num,total;double d1;給變量分配 空間num:total:d1:4字節(jié)8字節(jié)byte,short,int,long, fl

14、oat,double,char,boolean復合類型第23頁/共151頁3.2.3 變量變量例如:int num,total;double d1;num:total:d1: 變量遵循 “先聲明后使用” 的原則。num=5;total=2*num;d1=-234.45;num=6;K=90; /Error!Num=J+90+num; /Error!510-234.456第24頁/共151頁不同類型變量占用的存儲空間不同類型變量占用的存儲空間數(shù)據(jù)類型關鍵字占用位數(shù)取值范圍布爾型boolean8true, false字符型char16u 0000 u FFFF 字節(jié)型byte8-128127短整型

15、short16-3276832767整型int32-2147483648 2147483647長整型long64-2-63263-1浮點型float321.40129846432481707e-453.40282346638528860e+38 雙精度型double644.94065645841246544e-3241.79769313486231570e+308d 第25頁/共151頁3.2.3 變量變量 變量的初始化 :聲明變量時指定變量初值。例如: char a= a, b; double d1, d2=0.0; boolean flag=true; byte b1=255; byte

16、b2=289; /Error!第26頁/共151頁3.2.3 變量變量 變量的動態(tài)初始化: 在變量聲明時使用表達式初始化變量。 class DynInit public static void main(String args) double a = 3.0, b = 4.0; double c = Math.sqrt(a * a + b * b); System.out.println(Hypotenuse is: + c); c被動態(tài)初始化第27頁/共151頁3.2.4 符號常量符號常量 符號常量:為常量起的名字。n符號常量聲明 final 數(shù)據(jù)類型 常量名=缺省值;n注意:符號常量聲明時

17、一定要賦初值,而在程序的中間不能改變其值。例如:final double PI=3.14159;float r, area;r=4.5;area=3.14159*r*rfloat r, area;r=4.5;area=PI*r*r;PI=3.1415 /錯誤第28頁/共151頁【例例3-2】變量聲明和賦值。變量聲明和賦值。 public class UseVariables public static void main(String args) final int PRICE=30; /聲明整型常量 long l=1234l; /聲明長整型變量并賦值 int num,total; /聲明整型

18、變量 float r,v,h = 3.5f; /聲明浮點型變量,并給h賦值 double w = 3.1415; /聲明雙精度型變量并賦值 boolean truth = true; /聲明布爾類型變量并賦值 boolean false1; /聲明布爾類型變量 char c; /聲明字符類型變量第29頁/共151頁 c =A; / 給字符類型變量賦值。 num=10; / 給整型變量賦值 total=num*PRICE; r=2.5f; / 給浮點型變量賦值 v=3.14159f*r*r*h; false1 = 6 7; / 給布爾類型變量賦值 String s=I am a student;

19、 /給字符串引用變量賦值 【例例3-2】變量聲明和賦值。變量聲明和賦值。第30頁/共151頁3.3 運算符與表達式運算符與表達式 運算符: 指明對操作數(shù)的運算方式。 按操作數(shù)的個數(shù)分: :單目運算符( (如-a)-a),雙目運算符( (如a+b),a+b),三目運算符( (如e1?e2:e3)e1?e2:e3)。 按功能分類算術運算符: +,*,/,%,+,關系運算符: ,=,b;第31頁/共151頁3.3 運算符與表達式運算符與表達式 表達式:由運算符、操作數(shù)(常量、變量、方法調用)和圓括號組成的式子。 算術表達式算術表達式 賦值表達式賦值表達式第32頁/共151頁3.3.1 算術運算符與算

20、術表達式算術運算符與算術表達式 算術運算符:對整型或實型數(shù)據(jù)的運算。 算術運算符分類 雙目運算符 單目運算符第33頁/共151頁3.3.1 算術運算符與算術表達式算術運算符與算術表達式運算符運算例功能+加a + b求a與b相加的和-減a - b求a與b相減的差*乘a * b求a與b相乘的積/除a / b求a除以b的商%取余a % b求a除以b所得的余數(shù) 雙目算術運算符第34頁/共151頁雙目算術運算符雙目算術運算符 注意 (1)與C不同的是,Java中的“%”兩個運算對象可以是實數(shù)。 13%5=3 23.6%12=11.6 (2)兩個整型的數(shù)據(jù)做“/”運算時,結果是截取商的整數(shù)部分,而小數(shù)部分

21、被截斷。 2/4=0 2.0/4=0.5 第35頁/共151頁算術運算符與算術表達式算術運算符與算術表達式 單目運算符:操作數(shù)只有一個。運算符運算例功能等價+自增a+或+aa = a + 1-自減a-或-aa = a - 1-求負數(shù)-aa = -a第36頁/共151頁單目算術運算符單目算術運算符例如: int x=-1; x = -x ; 前綴(+,-): 先執(zhí)行單目運算,修改變量的值后用這個 新值參與表達式的運算。 后綴(+, -): 先計算表達式的值,最后再修改變量的取值。 自增和自減的操作對象只能是變量。 int y=(+x)*3; int y = (x+)*3; 第37頁/共151頁例

22、如: int x = 5 ; int y = (-x) * 3; 前綴和后綴運算符舉例前綴和后綴運算符舉例x為4 y為12x為4 y為15替換為 int y = (x-) * 3;第38頁/共151頁【例例3-3】算術運算符的應用。算術運算符的應用。 編寫一個Java應用程序,在對話框中輸入兩個數(shù)字,輸出其+、-、*、/、%運算的計算結果。 利用對話框,接受用戶從鍵盤輸入的兩個數(shù)字組成的字符串。 把兩個數(shù)字字符串轉化為整型數(shù)值,并賦值給兩個整型變量a和b。 以a和b為操作數(shù)進行算術運算,并在對話框中輸出運算結果。 程序運行時,可輸入任意兩個整數(shù),觀察程序運行的不同結果。 第39頁/共151頁【

23、例例3-3】算術運算符的應用。算術運算符的應用。 利用對話框輸入數(shù)據(jù)的方法 String JOptionPane.showInputDialog(String) String:對話框中的提示文字 返回值:對話框接收的數(shù)據(jù)為字符串類型 將數(shù)字串轉化為數(shù)字的方法int Integer.parseInt(String) 在對話框中顯示數(shù)據(jù)的方法 JOptionPane.showMessageDialog(Compoment, object, String ,JOptionPane.PLAIN_MESSAGE);第40頁/共151頁【例例3-3】算術運算符的應用。算術運算符的應用。import jav

24、a.util.Scanner;public class Test public static void main(String args) System.out.println(輸入第一個數(shù));Scanner scn = new Scanner(System.in);int a= scn.nextInt();System.out.println(輸入第2個數(shù));int b= scn.nextInt();String str = a + + +b + = + (a+b) + n;str = str + a + - +b + = + (a-b) + n; str = str + a + * +b

25、+ = + (a*b) + n; str = str + a + / +b + = + (a/b) + n; str = str + a + % +b + = + (a%b) + n; System.out.println(str);第41頁/共151頁3.3.2 賦值運算符與賦值表達式賦值運算符與賦值表達式例如,i=5 /賦值表達式的值是5 Java中賦值運算符:=、+=、-=、*=等。 賦值表達式:帶有賦值運算符的表達式。 賦值表達式的含義:等號右邊表達式的值賦給等號左邊的變量。 賦值表達式的類型:等號左邊變量的類型。 賦值運算的結合性:自右向左。第42頁/共151頁第43頁/共151頁3

26、.3.2 賦值運算符與賦值表達式賦值運算符與賦值表達式運算符例子等價于+ =x += ax = x + a- =x -= ax = x - a*=x *= ax = x * a/=x /= ax = x / a%=x %= ax = x % a 常用的復合賦值運算符n例:a+=3 等價于 a=a+3 x*=y+8 等價于 x=x*(y+8)第44頁/共151頁第45頁/共151頁關系運算符關系運算符 運算符運算例= =等于a=b! =不等于a!=b大于ab小于a=大于等于a=b=小于等于a1) & (5-4)! false第47頁/共151頁3.3.4 邏輯運算符與邏輯表達式邏輯運算符與邏輯表

27、達式 邏輯運算符與布爾邏輯運算符的區(qū)別 邏輯運算符: & | 利用它們做邏輯運算時,運算時右邊的表達式有可能被忽略(短路)而不加執(zhí)行。 布爾邏輯運算符:&、| 、 利用它們做與、或、異或運算時,運算符左右兩邊的表達式總會被運算執(zhí)行,然后再對兩表達式的結果進行與、或運算。e1 & e2e1 & e2false第48頁/共151頁3.3.4 邏輯運算符與邏輯表達式邏輯運算符與邏輯表達式boolean b= x y & x+ = y- ; /x為4,y為4,b為false 例如:int x = 3, y = 5 ; boolean b= x y & x+ = y- ; /x為3,y為5,b為fals

28、e 短路第49頁/共151頁3.3.4 邏輯運算符與邏輯表達式邏輯運算符與邏輯表達式 邏輯表達式:由邏輯運算符、關系表達式、邏輯值構成。例如:int x=12, y=13;float a=1, b=2;x = = y & a b!(a = b)x y & (a+3) b | ! ( x = a )第50頁/共151頁3.3.6 其它運算符其它運算符 條件運算符與條件表達式 e1?e2:e3 e1 為 boolean 類型 e2與e3的類型相同 執(zhí)行順序 若e1的值為true,e2的值為最終結果 若e1的值為false,e3的值為最終結果例如: y= x=0 ? x: -x max= xy ?

29、x: y第51頁/共151頁3.3.6 其它運算符其它運算符 括號 ( ) 方括號 對象運算符 instanceof boolean b = MyObject instanceof TextField; instanceof用來測定一個對象是否是某一個指定類或其子類的實例。第52頁/共151頁3.3.7 運算符的優(yōu)先級與結合性運算符的優(yōu)先級與結合性 表達式的運算次序:取決于表達式中各種運算符的優(yōu)先級。優(yōu)先級高的運算符先運算,優(yōu)先級低的運算符后運算,同一行中的運算符的優(yōu)先級相同。 運算符的結合性: :決定了并列的相同運算符的先后執(zhí)行順序。第53頁/共151頁Java運算符的優(yōu)先級與結合性運算符的

30、優(yōu)先級與結合性 右左= += -= *= /= %= =賦值運算14右左? :三目條件運算13左右|邏輯或12左右&邏輯與11左右|按位或,布爾邏輯或10左右按位異或9左右&按位與,布爾邏輯與8左右= = !=相等關系運算7左右 =關系運算6左右 移位運算5左右+ -算術加減運算4左右* / %算術乘除運算3右左+(正號) (負號) + - - !強制類型轉換符單目運算2左右. ( )最高優(yōu)先級1結合性運算符描述優(yōu)先級右左= += -= *= /= %= =賦值運算14右左? :三目條件運算13左右|邏輯或12左右&邏輯與11左右|按位或,布爾邏輯或10左右按位異或9左右&按位與,布爾邏輯與8

31、左右= = !=相等關系運算7左右 =關系運算6左右 移位運算5左右+ -算術加減運算4左右* / %算術乘除運算3右左+(正號) (負號) + - - !強制類型轉換符單目運算2左右. ( )最高優(yōu)先級1結合性運算符描述優(yōu)先級高低第54頁/共151頁Java運算符的優(yōu)先級與結合性運算符的優(yōu)先級與結合性 例如 x y & ! z 相當于 ( x y ) & ( ! z ) x + y + z 等價于 ( x + y ) + z ! !x 等價于 !( ! x ) 第55頁/共151頁第56頁/共151頁基本類型數(shù)據(jù)占有的內存寬度基本類型數(shù)據(jù)占有的內存寬度數(shù)據(jù)類型數(shù)據(jù)類型關鍵字關鍵字占用位數(shù)占用

32、位數(shù)取值范圍取值范圍布爾型布爾型boolean8true, false字符型字符型char16u 0000 u FFFF 字節(jié)型字節(jié)型byte8-128127短整型短整型short16-3276832767整型整型int32-2147483648 2147483647長整型長整型long64-2-63263-1浮點型浮點型float321.40129846432481707e-453.40282346638528860e+38 雙精度型雙精度型double644.94065645841246544e-3241.79769313486231570e+308d 第57頁/共151頁第58頁/共15

33、1頁強制類型轉換強制類型轉換 強制類型轉換 從較長的數(shù)據(jù)類型轉換成較短的數(shù)據(jù)類型時,必須做強制類型轉換。 即將表達式的類型強制性地轉換成某一數(shù)據(jù)類型。 強制類型轉換的格式 (數(shù)據(jù)類型)表達式 第59頁/共151頁【例例3-6】數(shù)據(jù)轉換類型的代碼。數(shù)據(jù)轉換類型的代碼。public static void main(String args) int iVal=258;long lVal=1000;short sVal=12;byte bVal = 2;char cVal = a;float fVal = 5.67f;double dVal = .1234;lVal=iVal; dVal = fVa

34、l; System.out.println(lVal+,+dVal);/自動轉換, lVal的值是258。dVal的值是5.67第60頁/共151頁bVal=(byte) iVal; System.out.println(bVal); /當值258被強制轉換為byte變量時,其結果是258除以256的余數(shù)2iVal=(int)lVal; iVal=cVal+1; System.out.println(iVal);lVal=(long) fVal;System.out.println(lVal);bVal = (byte) (bVal * 2);System.out.println(bVal);

35、 【例例3-6】數(shù)據(jù)轉換類型的代碼。數(shù)據(jù)轉換類型的代碼。/強制轉換/自動轉換。 將a對應的16 位的Unicode值97轉換為32位的int型 , 與1 相加,iVal的值是98/變量fVal 被強制轉換為long型,舍棄了小數(shù)部分。LVal的值是5/強制轉換第61頁/共151頁 bVal = bVal * 2 ; /Compiling Error. Cannot assign an int to a bytebVal = (byte) (bVal * 2) ; / /強制轉換【例例3-6】數(shù)據(jù)轉換類型的代碼。數(shù)據(jù)轉換類型的代碼。第62頁/共151頁第63頁/共151頁3.3.9 語句和塊語句

36、和塊 一個基本的語句以分號; ;結尾。 語句 表達式語句 空語句 復合語句 聲明語句 選擇語句 循環(huán)語句 跳轉語句 方法調用語句第64頁/共151頁第65頁/共151頁語句和塊語句和塊3、復合語句(語句塊) 將多條語句用 括起來,就構成復合語句。例如: int x, y, z; x = 5; y = 6; z = x + y;第66頁/共151頁例如,根據(jù)輸入的x 值,求出y值。 - 1 (x0)統(tǒng)計出1+2+3+n之和。sum=0; sum=sum+i; 重復做累加(i從1 到n)3.4 算法的基本控制結構算法的基本控制結構 算法的基本控制結構有3種 順序結構 選擇結構 循環(huán)結構 三種基本結

37、構就構成了程序的控制流程第67頁/共151頁truefalsefalsetrue3.4 算法的基本控制結構算法的基本控制結構第68頁/共151頁3.4 算法的基本控制結構算法的基本控制結構與算法的基本控制結構相關的Java語句 分支語句:if-else, switch 循環(huán)語句:while, do-while, for 與程序轉移有關的其它語句:break, continue, return第69頁/共151頁3.4.1 分支語句分支語句 分支語句提供了一種控制機制,使得程序根據(jù)相應的條件去執(zhí)行對應的語句。 if語句 switch語句第70頁/共151頁1. if 語句的語句的3種形式種形式(

38、1) if (表達式) 語句例:if ( x y) z=x; else z=y;(3) if (表達式1) 語句1 else if (表達式2) 語句2 else if (表達式3) 語句3 else 語句 n例: if (x0) y=1;else if (x=0) y=0;else if (x-10) y= -1; -10 x=0 & score=100)switch(score/10)case 10: case 9: grade=A; break;case 8: grade=B; break;case 7: grade=C; break;case 6: grade=D; break;def

39、ault: grade=E;System.out.println(grade=+ grade);第78頁/共151頁3.4.2 循環(huán)語句循環(huán)語句 循環(huán)結構是在一定條件下,反復執(zhí)行某段程序的流程結構,被反復執(zhí)行的程序被稱為循環(huán)體。 Java的循環(huán)語句共有3種 while語句 do-while語句 for語句 第79頁/共151頁1. while 語句語句while 語句形式 while (條件表達式) 語句執(zhí)行順序循環(huán)體可以是復合語句,其中必須含有改變條件表達式值的語句。第80頁/共151頁while 語句的使用語句的使用【例3-103-10】用whilewhile語句求1+2+1+2+100+

40、100的和。 當 i=n 時 sumsum+i i+sum 0, i 1輸出sum循環(huán)前的初始化循環(huán)體循環(huán)后的處理第81頁/共151頁public class WhileTry public static void main(String args) int i,sum; sum=0; /累加和變量置0 i=1; /計數(shù)器i的初始值為1 while (i=100) sum+=i; i+; System.out.println(sum=+sum); sum=5050 如何求1+3+5+7+.+99=?如何求2+4+6+8+.+100=? while (i100) i=i+2; while (i=

41、100)i=i+2; i=2;while 語句的使用語句的使用第82頁/共151頁2. do-while 語句語句一般形式do 語句while (表達式)循環(huán)體可以是復合語句,其中必須含有改變條件表達式值的語句。執(zhí)行順序 與while語句的比較第83頁/共151頁public class DoWhileTry public static void main(String args) int i,sum; sum=0; /累加和變量置0 i=1; /計數(shù)器i的初始值為1 do sum+=i; i+; while (i=100); System.out.println(sum=+sum); 2.d

42、o-while 語句語句第84頁/共151頁【例3-12】輸入一個整數(shù),將各位數(shù)字反轉后輸出。 例如:12345 54321 分析: 采用不斷除以10取余數(shù)的方法,直到商數(shù)等于0為止。并規(guī)定整數(shù)n為0,輸出0。輸入n;rightDigit=n%10; 重復此過程直到n等于0為止輸出rightDigit;n=n/10;String output=;do rightDigit=n%10; output=output+rightDigit; n=n/10; while (n!=0);當(n!=0)第85頁/共151頁import javax.swing.JOptionPane; class Reve

43、rseDigits public static void main(String args) int rightDigit; Scanner scn = new Scanner(System.in); System.out.println(輸入一個數(shù)); int n= scn.nextInt(); do rightDigit=n%10; System.out.print(rightDigit); n=n/10; while (n!=0); 【例3-12】輸入一個整數(shù),將各位數(shù)字反轉后輸出。第86頁/共151頁3. for語句語句語法形式: for (for (表達式1 1;表達式2 2;表達式

44、3) 3) 語句 為true時執(zhí)行循環(huán)體每次執(zhí)行完循環(huán)體后求解.用于改變循環(huán)控制變量的值 執(zhí)行順序循環(huán)前先求解, 完成初始化循環(huán)變量和其他變量例: for(i=1; i=100; i+) sum+=i;第87頁/共151頁【例例3-13】用用for語句求語句求1+2+100的和。的和。如何求1+3+5+7+.+99=?如何求2+4+6+8+.+100=?public class ForTry public static void main(String args) int i,sum; sum=0; for(i=1; i=100; i+) sum+=i; System.out.println(

45、sum=+sum); 第88頁/共151頁【例3-143-14】輸入一個整數(shù),求出它的所有因子。 分析:使用窮舉法對1n的全部整數(shù)判斷,如果能整除n的均是n的因子。 public static void main(String args) Scanner scn = new Scanner(System.in); System.out.println(輸入一個數(shù)); int n= scn.nextInt(); for(int k=1; k=n; k+) if(n%k=0) System.out.print(k+ ); 第89頁/共151頁關于關于for語句的幾點說明語句的幾點說明 (1)for

46、語句的三個表達式可以為空(但分號不能省略) for (; ;) 語句; /相當于 while (true) 語句; for (; i=100;) 語句; /相當于 while (i=100) 語句;(2)在表達式1和表達式3的位置上可包含多個語句 sum=0; for(int i=1; i=100; i+) /在for語句中聲明循環(huán)控制變量并賦初值 sum+=i; for(sum=0, int i=1; i=100; i+) sum+=i; System.out.println(i); /!Error第90頁/共151頁 sum=0; i=1 /在for語句之前給循環(huán)控制變量賦初值 for (

47、; i100; i+) sum=sum+i; /省略表達式1 i=1 /在for語句之前給循環(huán)控制變量賦初值 for (sum=0; i100; i+) /表達式1與循環(huán)控制變量無關 sum=sum+i; for (sum=0, i=1; i100; ) /省略表達式3 sum=sum+i; i+; /在循環(huán)體中改變循環(huán)控制條件 for( i=0, j=10; ij; i+, j-) / 表達式1和表達式3可以是逗號表達式 關于關于for語句的幾點說明語句的幾點說明第91頁/共151頁4、循環(huán)的嵌套、循環(huán)的嵌套 循環(huán)的嵌套:一個循環(huán)體內又包含另一個完整的循環(huán)結構。 三種循環(huán)語句(while循環(huán)

48、, do-while循環(huán)和for循環(huán))它們可以相互嵌套使用。 第92頁/共151頁【例例3-15】打印出星星菱型圖案。打印出星星菱型圖案。 分析 畫出上半部分4 4行圖案: :i =1 to 4 畫出下半部分3 3行圖案: : i=3 to 1 n 畫空格:4-i 個;n 畫星號:2*i-1 個n 換行n 畫空格:4-i 個;n 畫星號:2*i-1 個n 換行for(i=1;i=4;i+) /畫上面4行 for(j=1;j=4-i;j+) System.out.print(“ ”); for(j=1;j=2*i-1;j+) System.out.print(“*”); System.out.p

49、rintln(); 第93頁/共151頁5、跳轉語句、跳轉語句 用于改變程序控制流 break語句語句 continue語句語句 return循環(huán) break體循環(huán)條件true循環(huán) continue體循環(huán)條件true第94頁/共151頁(1) continue語句語句 continue語句只能出現(xiàn)在循環(huán)體中 結束本輪循環(huán),接著開始判斷決定是否執(zhí)行下一輪循環(huán)。 continue語句的語法格式 continue 標號;第95頁/共151頁continue語句語句 不帶標號的continue語句:終止當前這一輪循環(huán),跳過本輪剩余的語句,直接進入當前循環(huán)的下一輪。 在for循環(huán)中,不帶標號的conti

50、nue語句會跳轉至表達式3,計算修改循環(huán)變量后再判斷循環(huán)條件。 在while或do while循環(huán)中,不帶標號的continue語句會使流程直接跳轉至條件表達式。 第96頁/共151頁【例例3-16】使用不帶標號的使用不帶標號的continue語句的一個程序段。語句的一個程序段。int count;for (count=1;count=10;count+) if (count=5) continue; System.out.println(count + ); System.out.println(count=+count);程序段的運行輸出結果如下:1 2 3 4 6 7 8 9 10 co

51、unt=11 第97頁/共151頁(2)break語句語句 break語句僅出現(xiàn)在switch語句或循環(huán)體中。 作用:使程序的流程從一個語句塊內部跳轉出來,即從switch語句的分支中跳出,或從循環(huán)體內部跳出。 break語句的語法格式 break 標號;循環(huán) break體循環(huán)條件true第98頁/共151頁【例例3-18】使用不帶標號的使用不帶標號的break語句語句的一個程序段。的一個程序段。int count;for (count=1; count=10; count+) if (count=5) break; System.out.println(count + ); System.o

52、ut.println(count=+count);程序段的運行輸出結果如下:1 2 3 4 count=5第99頁/共151頁【例例3-19】使用帶標號的使用帶標號的break語句的語句的一個程序段。一個程序段。 stop:for (int i=1; i=10; i+) for (int j=1; j=5; j+) if (i=5) break stop; System.out.print( * ); System.out.println(); * 第100頁/共151頁第101頁/共151頁3.5 方法方法 對象的行為在Java中由方法來實現(xiàn)。一個方法(在其它語言中也稱做函數(shù)或過程)往往完成

53、一個具體的、獨立的功能。 方法編寫好后,可以被重復地使用;使用時只關心方法的功能和使用方法,而不必關心方法功能的具體實現(xiàn),這樣可有利于代碼的重用,提高程序的開發(fā)效率。-對不同的數(shù)據(jù)進行相同的加工處理。第102頁/共151頁3.5 方法方法 方法的聲明 方法的調用 方法的參數(shù)傳遞 方法的重載 方法的嵌套與遞歸第103頁/共151頁3.5.1 方法的聲明方法的聲明 方法的聲明格式: 返回值類型 方法名( 形式參數(shù)表 ) /方法頭 語句序列 /方法體 (1)返回值類型:規(guī)定了方法返回給調用者的結果值類型。若方法無返回值,必須寫void。方法的返回類型不是void類型,則這個方法的方法體中必須包含一個

54、 return 表達式;方法聲明和調用的例子:求階乘n!long factor(int n) long s; for (i=1; ib) return a; else return b; int x, y, z, m;x=10; y=89; z=-78;m=max(max(x,y),z);第106頁/共151頁3.5.1 方法的聲明方法的聲明(4)方法頭與方法體:方法聲明的第一行是方法頭,花括號中的語句序列構成了方法體。 方法頭定義了方法的名稱、怎樣調用它、返回什么類型的數(shù)據(jù)。 方法體定義具體實現(xiàn)功能的代碼,對調用者而言,只需要關心方法頭,而無需關心方法體。第107頁/共151頁3.5.2 方

55、法的調用方法的調用 方法調用的格式 (1) 方法名(實參表) (2) 通過對象調用非靜態(tài)方法 對象的引用名.方法名(實參表) (3) 通過類名調用靜態(tài)方法 類名.方法名(實參表) 實參表是用逗號分開的實參。要求實參表和方法聲明中的形參表的形參類型和形參個數(shù)完全相同。 如果方法的調用無返回值(void), 方法調用可作為一條語句單獨出現(xiàn)在程序中。 System.out.println( factor(5) ); String s=“ab”; /s=new String(“ab”); System.out.println( s.length() ); JOptionPane.showInputDi

56、alog( Input a integer number:);第108頁/共151頁方法的聲明和調用例子方法的聲明和調用例子int max(int a, int b) if (ab) return a; else return b; int x, y, z, m;x=10; y=89; z=-78;m=max(x,y,x)+2; /errorlong l1=2000, l2=300;l=max(l1,l2)-5; /errorint i=max(1, 2);long max(long a, long b) if (ab) return a; else return b; int i=max(1

57、, 2);合法,系統(tǒng)會進行隱含類型轉換第109頁/共151頁【例例3-20】輸出輸出10000之內的所有完全數(shù)。之內的所有完全數(shù)。 完全數(shù):所有因子和(包括1但不包括這個數(shù)本身)與其自身相同的數(shù)。例如6123,6123,則6是一個完全數(shù)。定義兩個方法: boolean isPerfect(int x):用于判斷x是否完全數(shù)。 void displayPerfect(int x):用于輸出x的因子之和的公式。 在main()方法中使用一個for循環(huán),檢查1到10000之間的所有整數(shù)是否是完全數(shù)。 第110頁/共151頁【例例3-20】輸出輸出10000之內的所有完全數(shù)。之內的所有完全數(shù)。publ

58、ic static void main(String args) for(int i=1; i=10000; i+)if(isPerfect(i)displayPerfect(i);static void displayPerfect(int x) /輸出x的因子之和的公式System.out.print(x+ = );for(int i=1; ix; i+)if(x%i=0) if (i!=1) System.out.print(“+”); /輸出因子前的加號 System.out.print(i); System.out.println();static boolean isPerfect

59、(int x)int sum=0;for(int i=1; i1)求階乘n!的遞歸方法的聲明:long factorial(int n) /方法聲明 if(n = 1) return 1; /遞歸終結點 else return n*factorial (n-1); /遞歸調用自身第118頁/共151頁遞歸遞歸 調用語句y=factorial(5);的執(zhí)行過程 long factorial(int n) if(n = 1) return 1; else return n*factorial (n-1); 第119頁/共151頁3.5.6 變量聲明的作用域變量聲明的作用域(1)參數(shù)聲明的作用域是聲

60、明方法所在的方法體。(2)局部變量在方法或方法中的一塊代碼中聲明,它的作用域為它所在的代碼塊(整個方法或方法中的某塊代碼)。(3)在帶標號的break和continue語句中,標號的作用域是帶標號結構范圍的語句(即帶標號語句的主體)。(4)出現(xiàn)在for結構頭初始化部分的局部變量,其作用域是for結構體和結構體頭中的其它表達式。(5)catch語句中的異常處理參數(shù)將傳遞給異常處理代碼塊,它的作用域就是catch的異常處理塊。(6)類中的方法和屬性,它們的作用域是整個類。這種作用域使一個類的方法可以用簡單的名稱調用類中聲明的其它方法以及該類繼承的方法,并使之能直接訪問在該類中聲明的屬性。第120頁

溫馨提示

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

最新文檔

評論

0/150

提交評論