版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、Java語言程序設計河南科技專修學院辛鳳凡xff13010/12/20221Java語言程序設計辛鳳凡xff13010/第2章 運算和語句10/12/20222第2章 運算和語句10/9/20222本章總體綱要數(shù)據(jù)運算語句Java程序實例 10/12/20223本章總體綱要數(shù)據(jù)運算10/9/20223數(shù)據(jù)運算賦值運算(簡單 復合)算術運算自增自減運算 (單目)關系運算邏輯運算條件運算 (三目)其他運算10/12/20224數(shù)據(jù)運算賦值運算(簡單 復合)10/9/20224Java運算符賦值類運算符算術運算符自增自減運算符關系運算符布爾邏輯運算符條件運算符其他運算符(位運算符 、移位)10/12
2、/20225Java運算符賦值類運算符10/9/202251. 賦值類運算符簡單賦值運算符不是相等()int j=3; double y=2.0; y=j; (類型自動轉換)從簡單到復雜的轉換賦值運算也有值 y=j=3;結合性: 自右至左10/12/202261. 賦值類運算符簡單賦值運算符10/9/202261. 賦值類運算符 復合賦值類運算符包括:+=、-=、*=、/=、&=、|=、%=、=和= op1 = op1 二元運算符 op2 等價于 op1二元運算符= op2; 例如:a=a+b;等價于a+=b;10/12/202271. 賦值類運算符 復合賦值類運算符10/9/202272.
3、算術運算符算術運算符包括: (取正), (取負) (單目運算) +, -, *, /, % (雙目運算)注意事項:當操作數(shù)是定點類型數(shù)據(jù)時,應當注意運算是否會溢出 int i=123456; i=i*i; /溢出整數(shù)除法:截去余數(shù)7 / 5 結果為 1考慮除數(shù)是否可能為0或很小的數(shù)10/12/202282. 算術運算符算術運算符包括:10/9/20228取模:返回余數(shù),可以對定點或浮點數(shù)進行取模運算7 % 5 結果為 2;15.25%(-0.5)結果為0.2510/12/20229取模:返回余數(shù),可以對定點或浮點數(shù)進行取模運算10/9/20練習-7 / 5 =-7 % 5 =7 % -5 =5
4、.5 % 1.0 =-1-220.510/12/202210練習-7 / 5 =-110/9/2022103.自增自減運算(單目)自增(+)和自減(-):操作數(shù)必須是變量;有前置和后置兩種運算 int n=3; int i=n+, j=n-; / i=3,j=4,n=3 int k=+n, m=-n; / k=4,m=3,n=310/12/2022113.自增自減運算(單目)自增(+)和自減(-):操作數(shù)必3.自增自減運算前綴 和后綴, 對變量本身,效果相同;但表達式的值不相同。i=5; +i; i-;運算對象只能是變量,不能是常量或表達式 , 如: 7+;(i+j) 都是非法的。10/12/
5、2022123.自增自減運算前綴 和后綴, 對變量本身,效果相同;但表達4. 關系運算符關系運算符包括: 、=、= 和 !=,關系運算生成一個布爾結果。例如:1 2; / false3.5 != 1; / true 51.5 = 23.0; / true540 = 654; / true24 = 3*8; / trueboolean test1=(10 10); / test1= false;10/12/2022134. 關系運算符關系運算符包括: 、=、=注意事項:計算機在表示浮點數(shù)以及浮點數(shù)運算時存在誤差,建議不要直接比較兩個浮點數(shù)是否相等,而通常改為判斷這兩個浮點數(shù)是否在一定的誤差允許范
6、圍之內(nèi)。 例如: (15.2%0.5)= 0.2 / 結果為false(0.2-1.0e-5 15.2%0.5 )&(15.2%0.5= 65) (birthday = true) | (+age = 65)10/12/202216短路規(guī)則 ( &和| )10/9/202216短路規(guī)則 ( &和| )int a,b,c;a=b=c=1;boolean w;w=+a1|+b=0) ? 1 : -1;條件運算符的結合性為“自右至左”。例如: x y ? x : u v ? u : v 等價于 x y ? x : (u v ? u : v)10/12/2022186. 條件運算符 10/9/2022
7、187. 其他運算符位運算 移位運算運算的優(yōu)先級 ()類型強制轉換運算10/12/2022197. 其他運算符位運算 10/9/202219 位運算符和移位位運算符包括:&、|、移位運算符有 : 、和 帶符號右移:左端空出的位填原符號位不帶符號右移(邏輯右移):左端空出的位填0(C或C+中無此運算符)位運算操作是:先將整數(shù)寫成二進制形式(補碼),然后按位操作,最后產(chǎn)生一個新的數(shù)注意: 只用于定點類型數(shù)據(jù)(整型)10/12/202220 位運算符和移位位運算符包括:&、|、10/9/2注意事項:Java將布爾類型作為一種單比特值(bit 位)對待,可以對它執(zhí)行按位“與”(&)、按位“或”(|)和
8、按位“異或”()運算。對于布爾值,按位操作具有與邏輯操作相同的效果,只是&和|采用“短路規(guī)則”而&和|則不采用。10/12/20222110/9/202221int before = 20; /apple筆記本市場份額double rise = 9.8; /增長的份額int now = before + rise; /現(xiàn)在的份額int now = before + (int)rise; 去年Apple筆記本所占的市場份額是20,今年增長的市場份額是9.8,求今年所占的份額?編譯出錯:不能完成自動類型轉換(類型名)表達式強制類型轉換int b = (int)10.2;double a = 10;
9、int c = (int)a;其它運算符包括:(類型)、()、 .、 、. 更改為強制類型轉換10/12/202222int before = 20; /apple筆記算符優(yōu)先當一個表達式中存在多個運算符時,運算符的優(yōu)先級決定了個部分的計算順序。Java對運算符的優(yōu)先級做了特別規(guī)定。程序員經(jīng)常會忘記運算符的優(yōu)先規(guī)則,所以應該用( )來明確規(guī)定計算順序使表達式更容易理解。例如: a + b + c / 3 (a + b + c ) / 310/12/202223算符優(yōu)先當一個表達式中存在多個運算符時,運算符的優(yōu)先級決定了C+中引入了運算符重載,使得c+程序員可以為幾乎所有運算符增加功能,而Jav
10、a認為此項特性過于復雜,所以Java程序員不能像C+程序員那樣實現(xiàn)自己的重載操作符。但是+和+=操作符除了一般算術運算的用途外,還可用于連接不同的字符串。在C和C+中,sizeof()運算符可以告訴我們?yōu)閿?shù)據(jù)分配的字節(jié)數(shù),C和C+需要這個運算符的最大原因是為了“移植”,不同數(shù)據(jù)類型在不同機器上可能有不同的大小,在進行一些與存儲空間有關的運算時,程序員必須獲悉哪些類型具體有多大。而Java則不需要,因此,Java中沒有sizeof()運算符。10/12/202224C+中引入了運算符重載,使得c+程序員可以為幾乎所有運算本章總體綱要數(shù)據(jù)運算語句Java程序實例 10/12/202225本章總體綱
11、要數(shù)據(jù)運算10/9/202225語句基本語句復合語句控制結構語句(順序、選擇、循環(huán))10/12/202226語句基本語句10/9/202226基本語句表達式語句 k=k+2;空語句 ;break語句 break; 用于循環(huán)或選擇continue語句 continue;同上return語句 return;return 表達式; 該語句的執(zhí)行將結束方法的執(zhí)行, 只能出現(xiàn)在方法體中10/12/202227基本語句表達式語句 k=k+2;10/9/202227復合語句用花括號引起來的兩條或兩條以上語句, 順序執(zhí)行但作為一個整體。在復合語句中可以定義自己專用的臨時變量10/12/202228復合語句用花
12、括號引起來的兩條或兩條以上語句, 順序執(zhí)行但作為控制結構if語句和if-else語句switch語句 for語句 while語句 do-while語句 break語句 continue語句return語句10/12/202229控制結構if語句和if-else語句10/9/202229true和false選擇或循環(huán)結構中,都根據(jù)布爾表達式的真或假來決定執(zhí)行路徑。注意:Java不允許將一個數(shù)字作為布爾值使用,這與c或c+不同。例如:當要表達“如果a不等于0”這個條件 不能寫作 if(a) 而要寫作 if(a!=0)10/12/202230true和false10/9/202230if語句if語句
13、的格式是:if (布爾表達式) 語句或if (布爾表達式) 一條或多條語句例如:if ( score = 60 ) System.out.println( Passed ); / Here could be a statement block.表達式語句假真10/12/202231if語句if語句的格式是:表達式語句假真10/9/20223if-else語句if-else語句的格式是:if (布爾表達式) 語句1或語句塊1else 語句2或語句塊2例如:if (score = 60) System.out.println(Passed!);else System.out.println(Fai
14、led!);真表達式語句1假語句210/12/202232if-else語句if-else語句的格式是:真表達式語句1if-else語句標準嵌套if-else控制結構可實現(xiàn)多路選擇,用在想從多個候選項中選擇且只選出一項時。例如:if (score90) System.out.println(“A”) ;else if (score=80) System.out.println(“B”) ;else if (score=60) System.out.println(“C”) ;else System.out.println(“F”) ;假真真假表達式1語句1表達式2語句2語句310/12/202
15、233if-else語句標準嵌套if-else控制結構可實現(xiàn)多路選if-else語句當使用if-else嵌套實現(xiàn)多分支選擇結構時,注意if和else的匹配采用最近原則,即else子句與最近的前一個未匹配的if子句配對。例如:if ( condition1 ) if ( condition2 ) system.out.println (“One”) ;else system.out.println (“Two”) ;縮進可以提高程序的可讀性,但不影響程序的邏輯。10/12/202234if-else語句當使用if-else嵌套實現(xiàn)多分支選擇結構switch (表達式) case 常量 1:語句組
16、1;break; case 常量 2:語句組2;break;default:語句;什么是switch結構計算表達式的值如果等于常量1如果等于常量2如果沒有找到匹配的值10/12/202235switch (表達式)什么是switch結構計算表達式的值switch語句switch表達式的數(shù)據(jù)類型可以是基本類型char、byte、short、int;或是這四種基本類型相對應的包裝類java.lang.Character、java.lang.Byte、java.lang.Short、java.lang.Integer或enum枚舉類型。跟在case后的必須是常量表達式,其值的類型應當與switch表
17、達式的數(shù)據(jù)類型相匹配。10/12/202236switch語句switch表達式的數(shù)據(jù)類型可以是基本類型c常見錯誤int mingCi = 1;switch (mingCi) case 1: System.out.println(出任武林盟主); case 2: System.out.println(出任武當掌門); case 3: System.out.println(出任峨嵋掌門); default: System.out.println(被逐出師門);輸出結果是什么?如果需要每個case執(zhí)行完后跳出,在每個case后不要忘記寫break;10/12/202237常見錯誤int mingC
18、i = 1;輸出結果是什么?如果需常見錯誤int mingCi = 1;switch (mingCi) case 1: System.out.println(出任武林盟主);break; case 2: System.out.println(出任武當掌門);break; case 2: System.out.println(出任峨嵋掌門);break; default: System.out.println(被逐出師門);case后面的常量必須各不相同代碼錯誤10/12/202238常見錯誤int mingCi = 1;case后面的常量必須常見錯誤String day = 星期一;switc
19、h (day) case 星期一: System.out.println(星期一:青菜 ); break; case 星期二: System.out.println(星期二:魚 ); break; default:switch后面小括號中表達式的值必須是整型或字符型代碼錯誤10/12/202239常見錯誤String day = 星期一;switch后trycatch語句Java提供了一種異常的機制協(xié)助程序報告和處理錯誤異常就是在程序的運行過程中所發(fā)生的不正常的事件,它會中斷正在運行的程序Try標識一個可能會發(fā)生異常的語句塊Catch標識一個處理異常的語句塊Finally標識一個無論try塊中
20、語句異常是否發(fā)生都會執(zhí)行的語句塊。異常!程序運行程序中斷運行10/12/202240trycatch語句Java提供了一種異常的機制協(xié)助程序報trycatch 語句格式try 語句塊/執(zhí)行該語句塊,可能會發(fā)生異常 catch (異常類型e) 異常發(fā)生時要執(zhí)行的語句塊 finally 無論異常發(fā)生與否,都要執(zhí)行的語句塊10/12/202241trycatch 語句格式try 10/9/202241什么是循環(huán):打印50份試卷10000米賽跑旋轉的車輪循環(huán)結構的特點循環(huán)結構 循環(huán)條件循環(huán)操作鍥而不舍地學習生活中的循環(huán)10/12/202242什么是循環(huán):打印50份試卷10000米賽跑旋轉的車輪循環(huán)結構
21、while語句while語句的格式:while (布爾表達式) 語句或語句塊當條件(布爾表達式)為true ,則不斷地執(zhí)行語句或語句塊“while” 循環(huán)的中止條件是布爾表達式變?yōu)閒alse如果布爾表達式一開始就為false,則不執(zhí)行循環(huán)體int counter=1, sum=0;while(counter=100) sum += counter; counter+;10/12/202243while語句while語句的格式:int counter=While語句特點:先判斷,再執(zhí)行步驟:使用while循環(huán)的步驟1、分析循環(huán)條件和循環(huán)操作2、套用while語法寫出代碼3、檢查循環(huán)是否能夠退出w
22、hile ( 循環(huán)條件 ) 循環(huán)操作符合條件,循環(huán)繼續(xù)執(zhí)行;否則,循環(huán)退出循環(huán)中被重復執(zhí)行的操作int i = 1;while ( i = 30 ) System.out.println(我能行!); i +;編碼規(guī)范:縮進、換行循環(huán)操作 循環(huán)條件 真假10/12/202244While語句while ( 循環(huán)條件 ) 符合條件,循環(huán)while循環(huán)常見問題/* 打印4次“歡迎新同學” */public static void main(String args)int i = 0;while (i 4 ) System.out.println(“歡迎新同學); i + ; 永遠都不會退出的循環(huán)稱
23、為死循環(huán) 循環(huán)一直執(zhí)行,不會退出,哪里出錯了?10/12/202245while循環(huán)常見問題/* 打印4次“歡迎新同學” */ while循環(huán)常見問題/* 打印4次“歡迎新同學” */public static void main(String args)int i= 1;while ( i 4 ) System.out.println(“歡迎新同學); i +; i 5 ) System.out.println(“歡迎新同學); i +; 注意:如果一開始條件就不滿足,while循環(huán)一次都不執(zhí)行 i 5一次都沒有打印,哪里出錯了?10/12/202247while循環(huán)常見問題/* 打印4次“
24、歡迎新同學” */ 什么是do-while循環(huán)do 循環(huán)操作 while ( 循環(huán)條件 );先執(zhí)行一遍循環(huán)操作符合條件,循環(huán)繼續(xù)執(zhí)行;否則,循環(huán)退出特點:先執(zhí)行,再判斷循環(huán)操作 循環(huán)條件 真假10/12/202248什么是do-while循環(huán)do 先執(zhí)行一遍循環(huán)操作符合條件while循環(huán)和do-while循環(huán)的區(qū)別語法不同初始情況不滿足循環(huán)條件時while循環(huán)一次都不會執(zhí)行do-while循環(huán)不管任何情況都至少執(zhí)行一次do 循環(huán)操作 while( 循環(huán)條件 );while ( 循環(huán)條件 ) 循環(huán)操作先判斷,再執(zhí)行先執(zhí)行,再判斷比較while和do-while10/12/202249while循
25、環(huán)和do-while循環(huán)的區(qū)別do whilefor循環(huán)的語法和執(zhí)行順序什么是for循環(huán)for( ; ; ) ; 條件為true 循環(huán)體被執(zhí)行 for ( int i = 0 ; i 100 ; i+ ) System.out.println(我最棒); 代碼規(guī)范:格式對齊、代碼的縮進 表達式1 表達式2 表達式3 循環(huán)操作 參數(shù)初始化條件判斷更新循環(huán)變量124310/12/202250for循環(huán)的語法和執(zhí)行順序什么是for循環(huán)for( for循環(huán)常見問題for(;i10;i+) System.out.println(這是 +i);int i=0;編譯錯誤:變量 i 沒有初始化for( ; ;
26、 ) ; 不能省略 可省略表達式1省略,循環(huán)變量的初始值在for語句之前由賦值語句取得10/12/202251for循環(huán)常見問題int i=0;編譯錯誤:for(初始化for循環(huán)常見問題for(int i=0;i+) System.out.println(這是 +i);編譯正確,但是缺少循環(huán)條件,造成死循環(huán)10/12/202252for循環(huán)常見問題for(int i=0;i+)編譯正for循環(huán)常見問題for(int i=0;i10;) System.out.println(這是 +i); i+;省略表達式3,在循環(huán)體內(nèi)應設法改變循環(huán)變量的值以結束循環(huán)編譯通過,但是循環(huán)變量的值無變化,造成死循環(huán)
27、10/12/202253for循環(huán)常見問題for(int i=0;i10;)i+for循環(huán)常見問題for(;) System.out.println(這是測試);表達式全省略,無條件判斷,循環(huán)變量無改變,應在循環(huán)體內(nèi)設法結束循環(huán),否則會造成死循環(huán)死循環(huán)10/12/202254for循環(huán)常見問題for(;)表達式全省略,無條件判斷,為什么需要break語句int i = 2;switch(i) case 1: System.out.println(星期一); break; case 2: System.out.println(星期二); break; /其他語句遇到break,立即跳出switc
28、h語句回顧break用于switch語句描述4000米長跑比賽for (int i = 0; i10; i+) 跑400米; if(不能堅持) break; /退出 第8圈,快累死了我要退出10/12/202255為什么需要break語句int i = 2;遇到break,什么是break語句break:改變程序控制流用于do-while、while、for中時,可跳出循環(huán)而執(zhí)行循環(huán)后面的語句while() break; 跳出整個循環(huán)break通常在循環(huán)中與條件語句一起使用10/12/202256什么是break語句break:改變程序控制流while(什么是continue語句continu
29、e :只能用在循環(huán)里continue 作用:跳過循環(huán)體中剩余的語句而執(zhí)行下一次循環(huán)while() continue; 繼續(xù)下一次循環(huán)通常與條件語句一起使用,加速循環(huán)for(int i = 0; i10;i+) 跑400米; if(!口渴) continue; /不喝水,繼續(xù)跑 接過水壺,喝水;示例10/12/202257什么是continue語句continue :只能用在循環(huán)里循環(huán)結構總結到目前為止所學的循環(huán)結構有哪些? 需要多次重復執(zhí)行一個或多個任務的問題考慮使用循環(huán)來解決10/12/202258循環(huán)結構總結到目前為止所學的循環(huán)結構有哪些? 需要多次重復執(zhí)循環(huán)總結int i=0;int s
30、um=0;while( i10 ) sum=sum+i; i+;int i=0;int sum=0;do sum=sum+i; i+;while(i10);int sum=0;for(int i=0;i10;i+)sum=sum+i;123412341234while和for相同,先進行判斷,后執(zhí)行循環(huán)體內(nèi)容do-while是先執(zhí)行,后判斷,至少執(zhí)行一次指出各種循環(huán)結構的執(zhí)行順序 10/12/202259循環(huán)總結int i=0;int i=0;int sum=0;嵌套的循環(huán)結構for循環(huán)的嵌套while循環(huán)的嵌套do.while循環(huán)的嵌套以上三個任意之間的嵌套10/12/202260嵌套的循環(huán)
31、結構for循環(huán)的嵌套10/9/202260return語句return語句的格式是: return ;或 return 表達式;return關鍵詞有兩方面用途:指定一個方法返回什么值結束當前方法的執(zhí)行,將控制返回到方法調用處返回值為void的方法可以不寫return語句,但是,如果一個方法聲明它將返回void之外的其他值,那么必須確保每一條代碼路徑都將返回一個指定類型的值。10/12/202261return語句return語句的格式是:10/9/2022控制流語句小結順序結構:語句順序執(zhí)行 分支結構:語句在滿足條件下執(zhí)行if, if-else, if-else if-else, switch
32、 循環(huán)結構:語句在滿足條件下循環(huán)執(zhí)行多次while, do-while, for跳轉語句break, continue10/12/202262控制流語句小結順序結構:語句順序執(zhí)行 10/9/202262包包解決類的同名問題允許類組成較小的單元(類似文件夾),易于找到和使用相應的文件防止命名沖突更好的保護類、數(shù)據(jù)和方法A.java包10/12/202263包包解決類的同名問題允許類組成較小的單元(類似文件夾),如何創(chuàng)建包package s1java.sg.chap7 ;public class AccpSchool public String toString() 包名 使用package聲明包,以分號結尾如果有包的聲明,一定作為Java源代碼的第一條語句 10/12/202264如何創(chuàng)建包package s1java.sg.chap7 包命名規(guī)范包名由小寫字母組成,不能以圓點開頭或結尾自己設定的包名之前最好加上唯一的前綴,通常使用組織倒置的網(wǎng)絡域名。如:域名 自己設定的包名部分依不同機構各自內(nèi)部的規(guī)范不同而不同package mypackage;package net.ja
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度海參產(chǎn)業(yè)鏈供應鏈金融解決方案合同3篇
- 2025年鋼廠爐渣熱能回收利用合同范本2篇
- 2025版五星級酒店餐飲部員工勞務合作協(xié)議3篇
- 二零二五年度畜牧飼養(yǎng)技術培訓與推廣合作協(xié)議3篇
- 2025年度電子商務平臺個人勞務用工合同模板
- 二零二五年度車輛租賃與租賃期限調整服務合同3篇
- 二零二五年度橙子產(chǎn)業(yè)投資與融資合作協(xié)議3篇
- 二零二五年度廚具行業(yè)綠色供應鏈合作框架協(xié)議3篇
- 2025年度網(wǎng)絡安全防護解決方案采購合同范本5篇
- 2025年度個人購房稅費繳納協(xié)議書2篇
- 家長心理健康教育知識講座
- 煤礦復工復產(chǎn)培訓課件
- GB/T 292-2023滾動軸承角接觸球軸承外形尺寸
- 軍人結婚函調報告表
- 民用無人駕駛航空器實名制登記管理規(guī)定
- 北京地鐵6號線
- 航空油料計量統(tǒng)計員(初級)理論考試復習題庫大全-上(單選題匯總)
- 諒解書(標準樣本)
- 西班牙語構詞.前后綴
- 《工程測試技術》全套教學課件
評論
0/150
提交評論