版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
第2章運算符和語句Java語言程序設計本章學習要點:數(shù)據(jù)運算語句Java程序?qū)嵗\算符:表示各種不同運算的符號就是運算符。(有運算對象(操作數(shù))個數(shù)及類型、運算優(yōu)先級、結(jié)合性等特性。)操作數(shù):由運算符連接的參與運算操作的數(shù)據(jù)稱為操作數(shù)。表達式:由運算符把操作數(shù)(可以是變量、常量等)連接成的一個有意義的式子就是一個表達式。2.1數(shù)據(jù)運算
賦值運算符都是二元運算符,具有右結(jié)合性。賦值運算符“=”左邊的操作數(shù)必須是變量,不能是常量或表達式;右邊的操作數(shù)可以是變量、常量或表達式。賦值時,右邊的操作數(shù)與左邊的變量類型要匹配。 基本賦值運算符的使用形式是: 變量名=表達式; 擴展賦值運算符的使用形式是: 變量名運算符=表達式;p13-14注意事項2.1.1賦值運算算術(shù)運算符按操作數(shù)的多少可分為一元(或稱單目)和二元(或稱雙目)兩類,一元運算符一次對一個操作數(shù)進行操作,二元運算符一次對兩個操作數(shù)進行操作。算術(shù)運算符的操作數(shù)類型是數(shù)值類型。一元運算符有+、-。一元運算符的結(jié)合性是右結(jié)合性。二元運算符有+、-、*、/和%,這些運算符并不改變操作數(shù)的值,而是返回一個必須賦給變量的值,二元算術(shù)運算符具有左結(jié)合性。
p14注意事項2.1.2算術(shù)運算自增++、自減--是單目運算符,要求運算分量是數(shù)值類型的變量。其作用是使變量的值增1或減1。注意前綴和后綴的區(qū)別。例:i=4;j=++i;i=4;j=i++;i=4;j=--i;i=4;j=i--;p15注意事項2.1.3自增和自減運算完成操作數(shù)的比較運算,結(jié)果為true、false(布爾類型值)。包括:==,!=,<,<=,>,>=都是雙目運算符。運算符“==”和“!=”的運算優(yōu)先級低于另外四個關(guān)系運算符。
2.1.4關(guān)系運算包括:&&,||,!注意:邏輯運算的操作數(shù)必須是布爾型的,結(jié)果也是布爾型的!優(yōu)先級關(guān)系見p213附錄B【例】inta=2,b=3,c=4,d=5;booleanx=a++>b++&&c++>d++;【例】要表示y/x>2并且x!=0,則表達式應為:&&,如果其前面的表達式為假,則不再計算其后面的表達式(a=3,b=4,c=4,d=5,x=false)2.1.5(布爾)邏輯運算x!=0&&y/x>2條件運算符是一種三元運算符,右結(jié)合型,它的格式如下:邏輯表達式?表達式1:表達式2【例】c=a>b?a:bx>y?x:u>v?u:v注意條件表達式的返回值類型由表達式1和表達式2的類型所占字節(jié)數(shù)高的決定。2.1.6條件運算1、位運算及移位運算位運算的運算分量只能是整型數(shù)據(jù),位運算把運算對象看作是由二進制位組成的位串,逐位完成指定的運算,得到一個新的位串。位運算符有4個,按優(yōu)先級從高到低順序,依次為:
~(位反)、&(位與)、^(位異或)、|(位或)。移位運算:將整數(shù)作為二進制位的位串向左或向右移動。移位運算符有三個:
左移運算符(<<)、算術(shù)右移運算符(>>)、邏輯右移運算符(>>>)2.1.7其他運算符左移一位相當于乘2,如4<<2,結(jié)果為16右移一位相當于除以2,如12>>2,結(jié)果為3注意:對于負數(shù),邏輯右移左端補0,算術(shù)右移左端補符號位,即1。2、字符串運算符運算符“+”可以實現(xiàn)兩個或多個字符串的連接,也可實現(xiàn)字符串與其他類對象的連接,在連接時,其他類對象會被轉(zhuǎn)換成字符串。另外,運算符“+=”把兩個字符串連接的結(jié)果放進第一個字符串里。例如,當想把幾項輸出內(nèi)容輸出在同一行里時使用的就是“+”運算符。2.1.7其他運算符補充:
①對象運算符(instanceof)對象運算符instanceof用來判斷一個對象是否是某一個類或者其子類的實例。如果對象是該類或者其子類的實例,返回ture;否則返回flase。
②.運算符
.運算符用于訪問對象實例或者類的類成員函數(shù)(即靜態(tài)的)。③new運算符new運算符用于創(chuàng)建一個新的對象或者新的數(shù)組。2.1.7其他運算符表達式是由操作數(shù)和運算符按一定的語法形式組成的符號序列.類型轉(zhuǎn)換優(yōu)先級結(jié)合性總結(jié):運算符的優(yōu)先級和表達式(一)類型轉(zhuǎn)換1.自動類型轉(zhuǎn)換整型、實型和字符型數(shù)據(jù)可以進行混合運算。在運算中,不同類型的數(shù)據(jù)先轉(zhuǎn)換成相同類型,然后再進行運算。轉(zhuǎn)換從低級到高級。可混合運算數(shù)據(jù)類型從低到高排列如下:低->byte,short,char,int,long,float,double->高總結(jié):運算符的優(yōu)先級和表達式(一)類型轉(zhuǎn)換2.強制類型轉(zhuǎn)換(p19)
高級數(shù)據(jù)要轉(zhuǎn)換為低級數(shù)據(jù)時,需進行強制類型轉(zhuǎn)換,Java不象C/C++那樣在賦值時允許自動類型轉(zhuǎn)換。從一種類型轉(zhuǎn)換到另一種類型可以使用下面的語句:
inta=5;charb;b=(char)a;加括號的char告訴編譯器想把整型變成字符并把它放在b里。總結(jié):運算符的優(yōu)先級和表達式(一)類型轉(zhuǎn)換3.表達式求值中的自動類型提升在表達式的求值過程中,運算中間值的精度有時會超出操作數(shù)的取值范圍。例如:bytex=30,y=50,z=100;inta=x*y/z;Java語言在對表達式求值時,自動提升byte或short類型的數(shù)據(jù)為int類型的。自動類型提升對數(shù)據(jù)的運算帶來了方便,但也容易引起編譯錯誤。例如:bytex=30;x=-x;//可測試,會出現(xiàn)編譯錯誤!不能向byte變量賦int值總結(jié):運算符的優(yōu)先級和表達式正負號,++,--,!(二)優(yōu)先級(參見附錄B)一個表達式中可能有多個運算符,它們按照優(yōu)先級從高到低的順序進行計算。單目算術(shù)位移關(guān)系==!=邏輯條件(三目)賦值(三)結(jié)合性結(jié)合性確定了同級運算符的運算順序。(單目、三目及賦值是右結(jié)合,其余均是左結(jié)合)總結(jié):運算符的優(yōu)先級和表達式Java用類搭起程序的框架,以方法實現(xiàn)類的功能,在方法中用各種語句結(jié)構(gòu)來控制程序的流程.2.2語句
基本語句主要有表達式語句、空語句、break語句、continue語句、return語句等?;菊Z句都以分號為結(jié)束符。2.2.1基本語句用一對花括號“{}”將零個或多個語句括起來,就構(gòu)成一個塊(也稱復合語句)。在塊中允許包含另一個塊(塊嵌套)。在Java語言中,允許一個塊出現(xiàn)在任何單一語句可以出現(xiàn)的地方。
2.2.2復合語句(塊作用域)class塊{publicstaticvoidmain(Stringargs[]){inta=5;a+=8;{intb=6;b=b+a;System.out.println(a+""+b);}}}注意:此句移到括號外則出錯!塊體現(xiàn)了Java面向?qū)ο蟪绦蛟O計的封裝概念,在一個塊中聲明的局部變量的作用域是該變量的聲明開始點到最小的包含其聲明的塊結(jié)束。塊嵌套時,外層聲明的變量在內(nèi)層仍然有效,但內(nèi)層不能再聲明與外層變量同名的變量.2.2.2復合語句(塊作用域)分支語句在程序中的作用是使程序更靈活,它允許程序根據(jù)不同的情況、不同的條件等采取不同的動作、進行不同的操作,實現(xiàn)選擇結(jié)構(gòu)。在Java語言中使用的分支語句有if-else語句和switch語句。2.2.3-2.2.4分支(選擇)結(jié)構(gòu)1.if-else語句【例】檢查用random()方法產(chǎn)生的一個字符,判斷是否為英文大寫字母、小寫字母、數(shù)字、空格或是其他符號,并輸出相應信息。random()方法產(chǎn)生的隨機數(shù)在0.0和1.0之間程序要根據(jù)5種不同的字符情況輸出不同的信息。這屬于多分支的程序設計,采用if嵌套的方法。2.2.3-2.2.4分支(選擇)結(jié)構(gòu)classLetter{publicstaticvoidmain(Stringargs[]){charch;ch=(char)(Math.random()*128);if(ch=='')System.out.println(ch+"是空格!");elseif(ch>='a'&&ch<='z')System.out.println(ch+"是小寫字母!");elseif(ch>='A'&&ch<='Z')System.out.println(ch+"是大寫字母!");elseif(ch>='0'&&ch<='9')System.out.println(ch+"是數(shù)字!");elseSystem.out.println(ch+"是其他符號!");}}注意:Java編譯器總是將else與其最近未配對的if配對2.switch語句switch多分支語句結(jié)構(gòu)實際上也是一種if-else結(jié)構(gòu),不過它使得在編碼時很容易寫出判斷條件,特別是有很多選項而且條件比較簡單的時候。switch的語法結(jié)構(gòu)如下:switch(表達式){case值1:語句1;break;case值2:語句2;break;......case值N:語句N;break;default:語句N+1;}表達式必須為byte,short,int,或char類型常量值必須是與表達式類型兼容,且不能重復,break跳出case語句段若所有的case都不匹配,則可去執(zhí)行default語句2.2.3-2.2.4分支(選擇)結(jié)構(gòu)2.2.3-2.2.4分支(選擇)結(jié)構(gòu)publicclassA{publicstaticvoidmain(Stringargs[]){ints=1;switch(s){case1:System.out.println("上街購物去!\n");break;case2:System.out.println("去游泳!\n");break;case3:System.out.println("在家看電視!\n");break;default:System.out.println("錯誤選擇!\n");break;}}}循環(huán)語句的作用是使某一段程序根據(jù)需要重復執(zhí)行多次。循環(huán)語句由循環(huán)體和循環(huán)條件兩部分構(gòu)成,循環(huán)體是要重復執(zhí)行的語句,循環(huán)條件決定循環(huán)的開始、重復執(zhí)行以及結(jié)束循環(huán)。2.3.6-2.2.10循環(huán)結(jié)構(gòu)while語句的一般格式為:
while(布爾表達式)語句while語句循環(huán)體最少執(zhí)行次數(shù)為0次。do_while循環(huán)語句的一般格式為:
do語句while(布爾表達式);do_while語句的循環(huán)體至少執(zhí)行1次.死循環(huán)可以用ctrl+c鍵退出2.3.6-2.2.10循環(huán)結(jié)構(gòu)
①while語句與do-while語句intcount=1;while(count<=n){if(count<n)System.out.print(count+",");elseSystem.out.println(count);count++;}c=0;do{n/=10;c++;}while(n!=0);System.out.println(c);for循環(huán)語句在幾種循環(huán)語句中的格式與用法最靈活,它的一般格式為:for([表達式1];[表達式2];[表達式3])語句其中,表達式1指出for循環(huán)的循環(huán)初值;表達式2是一關(guān)系或邏輯表達式,值為false時循環(huán)結(jié)束;表達式3指出每次循環(huán)時所進行的計算和更新。3個表達式在使用中可根據(jù)需要,部分或全部不寫均可。2.3.6-2.2.10循環(huán)結(jié)構(gòu)
③for語句for(s=0,i=1;i<=100;i++)s+=i;一個循環(huán)體內(nèi)又包含另一個完整的循環(huán)結(jié)構(gòu),稱為循環(huán)的嵌套。內(nèi)嵌的循環(huán)中還可以嵌套循環(huán),稱多重循環(huán)。設計循環(huán)嵌套結(jié)構(gòu)時,要注意內(nèi)存循環(huán)語句必須完整地包含在外層循環(huán)的循環(huán)體中,不得出現(xiàn)內(nèi)外層循環(huán)體交叉的情況。Java語言中的三種循環(huán)語句都可以組成多重循環(huán)。2.3.6-2.2.10循環(huán)結(jié)構(gòu)
④循環(huán)嵌套【例】輸出星號符號組成的菱形圖案classPrintStar{publicstaticvoidmain(Stringargs[]){for(inti=-2;i<=2;i++){for(intj=1;j<=Math.abs(i);j++)System.out.print("");for(intj=1;j<=(3-Math.abs(i))*2-1;j++)System.out.print("*");System.out.println();}}}*************【例2.10】已知直角三角形每邊長為25以內(nèi)的整數(shù),求出所有這樣的直角三角形三邊長。publicclassExample2_10{publicstaticvoidmain(Stringargs[]){inta,b,c;for(c=3;c<=25;c++)for(b=1;b<c;b++)for(a=1;a<=b;a++)if(a*a+b*b==c*c)System.out.println("A="+a+"\tb="+b+"\tC="+c);}}2.3.6-2.2.10循環(huán)結(jié)構(gòu)
⑥breakclassPrimeNbelow{
publicstaticvoidmain(Stringargs[]){inti,j;for(j=2;j<=50;j++){for(i=2;i<=j/2;i++)if(j%i==0)break;if(i>j/2)System.out.print("\n"+j+"是質(zhì)數(shù)");}}}【例2.12】求50以內(nèi)的所有質(zhì)數(shù)2.3.6-2.2.10循環(huán)結(jié)構(gòu)
⑤continueclassPrimeNbelow{publicstaticvoidmain(Stringargs[]){inti;for(i=1;i<=5;i++){if(i%2!=0)System.out.print("*");elsecontinue;
System.out.print("#");}System.out.println("$\n");}}運行結(jié)果:
*#
*#
*#$
2.2.5try…catch語句
Java異常處理Java是一個講究安全性的語言。任何可能在程序運行過程中產(chǎn)生打斷程序正常執(zhí)行的事件都有用來保護的陷阱。Java異常處理機制提供了去檢查及處理產(chǎn)生各種錯誤、異常事件的方法。1.異常的概念在程序運行過程中發(fā)生的、會打斷程序正常執(zhí)行的事件稱為異常(Exception),也稱為例外。程序運行過程中可能會有許多意料之外的事情發(fā)生,
例如:零用作了除數(shù)(產(chǎn)生算術(shù)異常ArithmeticException)在指定的磁盤上沒有要打開的文件(FileNotFoundException)對于一個實用的程序來說,處理異常的能力是一個不可缺少的部分,它的目的是保證程序在出現(xiàn)任何異常的情況下仍能按照計劃執(zhí)行。2.2.5try…catch語句
Java異常處理2.異常處理在Java語言中,異常有幾種處理方式:(1)可以不處理運行時異常,由Java虛擬機自動進行處理。(2)使用try-catch-finally語句捕獲異常。(3)通過throws子句聲明拋棄異常,還可以自定義異常,用throw語句來拋出它。2.2.5try…catch語句
Java異常處理try{語句//可能產(chǎn)生異常的語句}//不能有其它語句分隔catch(異常類e)//異常參數(shù){語句}//異常處理程序catch(異常類e)//異常參數(shù){語句}//異常處理程序…finally{語句}//最終處理(缺省處理);…//OtherStatements2.2.5try…catch語句
Java異常處理捕獲除數(shù)為零的異常,并顯示相應信息。classExceptionDemo1{
publicstaticvoidmain(Stringargs[])
{
intd,a;try//監(jiān)控可能產(chǎn)生異常的代碼塊{d=0;a=68/d;System.out.println("本字符串將不顯示。");}catch(ArithmeticExceptione)//捕獲divide-by-zero錯誤{System.out.println("產(chǎn)生用零除錯誤。");}finally{System.out.println("finally語句被執(zhí)行");}
System.out.println("在捕獲語句后。");
}}2.2.5try…catch語句
Java異常處理 Java中的包(package)是用來把一組相關(guān)的類、接口放在一起的組織結(jié)構(gòu)(集合),它是一個相對獨立的軟件單元,可以簡單地理解為放置這些類和接口的文件夾。包體現(xiàn)了Java語言面向?qū)ο筇匦灾械姆庋b機制。Java包就是具有一定相關(guān)性在文件系統(tǒng)中可準確定位的Java文件的集合。2.2.11-12Java中包的概念與使用Java提供的用于語言開發(fā)的類庫及接口,稱為應用程序編程接口API(ApplicationProgrammingInterface),分別放在不同的包中。2.2.11-12Java中包的概念與使用java.lang 語言包java.applet Applet應用程序java.awt 抽象窗口工具包java.io 輸入輸出流的文件包 網(wǎng)絡功能java.util 實用包一.Java的常用包2.2.11-12Java中包的概念與使用二.包的引用在Java程序的開頭添加import語句,可指明源程序要使用含有該類的包.如:importjava.awt.Graphics;importjava.applet.*;注意:java.lang包是系統(tǒng)自動隱含導入的,所以可以不使用import語句.其他類引用時一定要使用import語句導入該類的包.2.2.11-12Java中包的概念與使用2.2.11-12
Java中包的概念與使用
---(1)包聲明一、包由包語句package創(chuàng)建:
package[自定義包名1[.包名2[.[...]]]]
在Java程序中,package語句必須是程序的第一條非空格、非注釋語句。通過package語句,可將Java程序分層次地存放在不同的目錄下,目錄名稱與包的名稱相同。關(guān)鍵字package后是不同層次的包名,各級包名之間用“.”號分隔。通常情況下,包名稱的元素被整個地小寫。[package包名;]import包名.類名;…//更多的import語句,引入更多的類[public]class類名{intval=…//變量定義語句publicstaticvoidmain(Stringargs[])//方法定義{ …//變量定義和控制語句構(gòu)成的方法體}}2.2.13Java應用程序的基本結(jié)構(gòu)Java程序由類和對象構(gòu)成,而類又由方法和變量構(gòu)成。J
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 英文設備貸款合同模板
- 董事長秘書助理崗位職責
- 九年級化學上冊 第三章 維持生命之氣-氧氣3.2 制取氧氣教案(新版)粵教版
- 八年級物理上冊 1.1《希望你喜愛物理》第1課時教案 (新版)粵教滬版
- 2024-2025學年七年級地理上冊 第三章 天氣與氣候 第二節(jié) 氣溫的變化與分布教案 (新版)新人教版
- 高中歷史 5.2 無產(chǎn)階級革命導師恩格斯教案2 新人教版選修4
- 2024年高中化學 第四章 電化學基礎 第一節(jié) 原電池教案 新人教版選修4
- 武術(shù)作業(yè)設計人教版八下初中二年級體育教學設計
- 船長課件人教版
- 心電圖出科課件
- DB11T 2103.2-2023 社會單位和重點場所消防安全管理規(guī)范 第2部分:養(yǎng)老機構(gòu)
- 2024年高等教育法學類自考-00262法律文書寫作考試近5年真題附答案
- 合肥市包河區(qū)2024年八年級上學期《生物》期中試題與參考答案
- 北京市人民大學附屬中學2025屆數(shù)學高二上期末統(tǒng)考模擬試題含解析
- 萬達入職在線測評題
- 2024年醫(yī)務科工作總結(jié)標準范本(二篇)
- “一老一小”服務體系協(xié)同高質(zhì)量發(fā)展對策研究
- 《白描人物摹神韻》 課件 2024-2025學年嶺南美版(2024) 初中美術(shù)七年級上冊
- 2024年浙江省寧波市鄞州中學強基招生數(shù)學試題
- 【課件】Unit+3(單元復習課件)七年級英語上冊(人教版2024)
- 2024年全國職業(yè)院校技能大賽高職組(藥學技能賽項)考試題庫(含答案)
評論
0/150
提交評論