第二節(jié)語言基礎(chǔ)演示文稿_第1頁
第二節(jié)語言基礎(chǔ)演示文稿_第2頁
第二節(jié)語言基礎(chǔ)演示文稿_第3頁
第二節(jié)語言基礎(chǔ)演示文稿_第4頁
第二節(jié)語言基礎(chǔ)演示文稿_第5頁
已閱讀5頁,還剩58頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第二節(jié)語言基礎(chǔ)演示文稿當(dāng)前第1頁\共有64頁\編于星期三\8點(diǎn)優(yōu)選第二節(jié)語言基礎(chǔ)當(dāng)前第2頁\共有64頁\編于星期三\8點(diǎn)1.Java程序的構(gòu)成靜態(tài)屬性importjava.applet.*;importjava.awt.*;importjava.awt.event.*;publicclassAppletInOutextendsAppletimplementsActionListener 主類類頭{ Labelprompt; TextFieldinput,output; publicvoidinit() { prompt=newLabel("請輸入您的名字:");

input=newTextField(6);

output=newTextField(20);

add(prompt);

add(input);

add(output);

input.addActionListener(this);

}

publicvoidactionPerformed(ActionEvente)

{

output.setText(input.getText()+",歡迎你!");

}}方法1方法2主類類體屬性當(dāng)前第3頁\共有64頁\編于星期三\8點(diǎn)1.Java程序的構(gòu)成Java源程序是由類的定義組成的。每個Java源程序中可以定義若干個類,其中只有一個類是主類,主類是Java程序執(zhí)行的入口點(diǎn)。在JavaApplication中,主類是指包含main方法的類;在JavaApplet里,主類是系統(tǒng)類Applet的子類。Java源程序以.java為后綴,名字與主類名一致。當(dāng)前第4頁\共有64頁\編于星期三\8點(diǎn)1.Java程序的構(gòu)成類的定義由類頭定義和類體定義兩部分組成,使用關(guān)鍵字class。類頭部分除了定義類名之外,還可以說明類的繼承特性。當(dāng)一個類被定義為是另一個類(稱父類)的子類時,它可以從父類中繼承父類中的類成員。類體部分用來定義屬性和方法這兩種類的成員,方法類似于其他高級語言中的函數(shù),屬性則類似于變量。當(dāng)前第5頁\共有64頁\編于星期三\8點(diǎn)1.Java程序的構(gòu)成語句是構(gòu)成Java程序的基本單位之一。Java語句以分號(;)結(jié)束,其構(gòu)成應(yīng)該符合Java的語法規(guī)則。Java程序是由類定義組成的,類內(nèi)部包括類的屬性聲明和類的方法兩部分。除屬性聲明語句之外,其他的語句(執(zhí)行具體操作)只能存在于方法的大括號之中,不能寫在方法的外面。表達(dá)式、變量、常量和關(guān)鍵字等:比語句更小的語言單位,語句就是由它們構(gòu)成的。當(dāng)前第6頁\共有64頁\編于星期三\8點(diǎn)1.Java程序的構(gòu)成publicclassMyJavaClass{ publicstaticvoidmain(String[]args) { System.out.println(“AmIWrong?”) System.out.println(“程序結(jié)束。”);

}

}classUser{

privateStringuserMeg;

publicStringgetMeg()

{ userMeg=“StringfromUser”;

returnuserMeg;

}}當(dāng)前第7頁\共有64頁\編于星期三\8點(diǎn)Java程序結(jié)構(gòu)標(biāo)識符數(shù)據(jù)類型變量與常量表達(dá)式流程控制語句小結(jié)當(dāng)前第8頁\共有64頁\編于星期三\8點(diǎn)2.標(biāo)識符任何一個類、方法、對象、變量和常量都需要有一個名字標(biāo)志它的存在,即標(biāo)識符。Java對于標(biāo)識符的定義有如下的規(guī)定:標(biāo)識符由字母、數(shù)字和下劃線、美元符號($)組成。標(biāo)識符必須以字母、下劃線(_)或美元符號($)開頭。不能為關(guān)鍵詞,如class、publicJava區(qū)分大小寫,在定義和使用時要特別注意。當(dāng)前第9頁\共有64頁\編于星期三\8點(diǎn)2.標(biāo)識符FirstJavaApplet _$theLastOneMySalary12 JavaBuilderl273.15 _isTrueA% Tree&Glass

5w if當(dāng)前第10頁\共有64頁\編于星期三\8點(diǎn)Java程序結(jié)構(gòu)標(biāo)識符基本數(shù)據(jù)類型變量與常量表達(dá)式流程控制語句小結(jié)當(dāng)前第11頁\共有64頁\編于星期三\8點(diǎn)3.數(shù)據(jù)類型基本數(shù)據(jù)類型關(guān)鍵字占用位數(shù)默認(rèn)值取值范圍布爾型boolean8falsetrue,false字符型char16`\u0000``\u0000’~`\uFFFF`字節(jié)型byte80-128~127短整型short160-32768~32767整型int320-2147483648~2147483647長整型long640L-9223372036854775808~9223372036854775807單精度型float320.0F1.40129846432481707e-45~3.40282346638528860e+38雙精度型double640.0D4.94065645841246544e-324~1.79769313486231570e+308d當(dāng)前第12頁\共有64頁\編于星期三\8點(diǎn)3.數(shù)據(jù)類型Java的基本數(shù)據(jù)類型:Java的各種數(shù)據(jù)類型占用固定的位數(shù),與具體的軟硬件平臺環(huán)境無關(guān),保證Java的跨平臺特性;Java的每種數(shù)據(jù)類型都對應(yīng)有默認(rèn)值,保證Java的安全穩(wěn)定性。int類型是最常用的整數(shù)類型,它表示的數(shù)據(jù)范圍足夠大,能滿足一般需求。byte用來處理未經(jīng)加工的二進(jìn)制數(shù)據(jù),每個byte型常量或變量中包含8位(bit)的二進(jìn)制信息。boolean用來表示布爾型數(shù)據(jù)。boolean型變量或常量的取值只有true和false兩個:true代表“真”,false代表“假”。當(dāng)前第13頁\共有64頁\編于星期三\8點(diǎn)3.數(shù)據(jù)類型char字符型數(shù)據(jù):Java的字符類型采用了Unicode編碼。Unicode編碼是一種國際標(biāo)準(zhǔn)編碼方案,每個Unicode碼占用16位,可以表示216=64K個不同的字符,可以完全涵蓋多種語言的字符集。ASCII碼僅是Unicode碼的子集。Unicode字符通常用字符或者十六進(jìn)制編碼'\u****'表示,其中'\u0000'~'\u00FF'為ASCII字符,'\u'表示這是一個Unicode值。例如:charc=‘A’;charA=‘\u0041’當(dāng)前第14頁\共有64頁\編于星期三\8點(diǎn)3.數(shù)據(jù)類型之前列出的數(shù)據(jù)類型都是基本數(shù)據(jù)類型,Java是典型的面向?qū)ο笳Z言,Java中最重要的數(shù)據(jù)類型是引用數(shù)據(jù)類型(reference),包括類和接口等。引用數(shù)據(jù)類型在包含基本數(shù)據(jù)類型所表示的特定范圍、特定格式的數(shù)值的同時,還包含了一些特定的方法,用來對數(shù)值進(jìn)行專門操作

例:Array,Date,TreeSet,……

MyJavaApplication,……

引用類型將在第三節(jié)介紹當(dāng)前第15頁\共有64頁\編于星期三\8點(diǎn)Java程序結(jié)構(gòu)標(biāo)識符數(shù)據(jù)類型變量與常量表達(dá)式流程控制語句小結(jié)當(dāng)前第16頁\共有64頁\編于星期三\8點(diǎn)4.變量與常量常量:在程序運(yùn)行過程中值不會改變。Java中的常量根據(jù)數(shù)據(jù)類型的不同也區(qū)分為不同的常量類型,如布爾常量、整型常量、字符常量、浮點(diǎn)常量和字符串常量。在程序中使用關(guān)鍵字final定義常量:

注:常量必須有初始值。 如:finaldoublePI=3.1415926

finalStringMSG=“thecodeisunicode”finaldatatypeconsName=value;當(dāng)前第17頁\共有64頁\編于星期三\8點(diǎn)4.變量與常量(1)布爾常量:包括true和false,分別代表邏輯真和邏輯假。

(2)整型常量整型常量可以采用十進(jìn)制、八進(jìn)制和十六進(jìn)制表示:十進(jìn)制的整型常量:非0開頭的數(shù)值,如100,-50;八進(jìn)制的整型常量:以0開頭的數(shù)值,如017代表數(shù)字15;十六進(jìn)制的整型常量:0x開頭的數(shù)值,如0x2F代表數(shù)字47。整型常量按照所占用的內(nèi)存長度,可分為一般整型常量(32位)和長整型常量(64位)。長整型常量的尾部有一個大寫的L或小寫的l,如-386L,017777l。當(dāng)前第18頁\共有64頁\編于星期三\8點(diǎn)4.變量與常量(3)浮點(diǎn)常量:表示可以含有小數(shù)部分的數(shù)值常量根據(jù)占用內(nèi)存長度的不同,可以分為一般浮點(diǎn)常量和雙精度浮點(diǎn)常量:一般浮點(diǎn)常量占32位,用F、f表示,如19.4F,3.0513E3f,8701.52f;雙精度浮點(diǎn)常量占用64位內(nèi)存,用帶D或d或不加后綴的數(shù)值表示,如2.433E-5D,700041.273d,3.1415。表示方法:一般表示法、指數(shù)表示法當(dāng)前第19頁\共有64頁\編于星期三\8點(diǎn)4.變量與常量(4)字符常量字符常量用一對單引號括起的單個字符表示,字母表中的字符,如′a′、

′Z′、′8′、′#′;轉(zhuǎn)義字符;要表示的字符所對應(yīng)的八進(jìn)制數(shù)或Unicode碼。轉(zhuǎn)義字符:Java中有一些特殊的、很難用一般方式表達(dá)的字符,如回車、換行等。為了表達(dá)這些特殊字符,Java中引入了一些特別的字符,它具有特定的含義,不同于字符原有的意義,稱“轉(zhuǎn)義”字符。以反斜線(\)開頭,后面跟著一個字符來表示特定的字符當(dāng)前第20頁\共有64頁\編于星期三\8點(diǎn)4.變量與常量

System.out.println("\"It\'sfreezinginhere\",\nhesaidcoldly.");

"It'sfreezinginhere",hesaidcoldly.當(dāng)前第21頁\共有64頁\編于星期三\8點(diǎn)4.變量與常量(5)字符串常量字符串常量是用雙引號括起的若干個字符(可以是0個)。字符串中可以包括轉(zhuǎn)義符,標(biāo)志字符串開始和結(jié)束的雙引號必須在源代碼的同一行上。如:”Hello”,”My\nJava”,”Howareyou?1”,””可以使用連接操作符(+)把兩個或更多的字符串常量串接在一起,組成一個更長的字符串。如:“Howdoyoudo?”+“

\n”“

Howdoyoudo?\n”當(dāng)前第22頁\共有64頁\編于星期三\8點(diǎn)4.變量與常量變量:在程序的運(yùn)行過程中數(shù)值可變的數(shù)據(jù)。Java中的變量必須先聲明后使用,指明變量的數(shù)據(jù)類型、名稱或初始值。聲明變量的語句格式為: 其中type為變量類型(包括基本數(shù)據(jù)類型和引用類型),varName為變量名,value為初始值。 如:booleanmFlag=true; charmyCharacter=′B′;

longmyLong=-375L; intmCount=65536;

doublemScroe;typevarName[=value];當(dāng)前第23頁\共有64頁\編于星期三\8點(diǎn)4.變量與常量publicclassUseVariable{publicstaticvoidmain(Stringargs[]){ booleanb=true; shortsi=128; inti=-99; longl=123456789L; charch='J'; charchc='中';

floatf=3.1415926F;

doubled=-1.04E-5;

Strings="你好!";

System.out.println("布爾型變量b="+b);

System.out.println("短整型變量si="+si);

System.out.println("整型變量i="+i);

System.out.println("長整型變量l="+l);

System.out.println("字符型變量ch="+ch);

System.out.println("字符型變量chc="+chc);

System.out.println("浮點(diǎn)型變量f="+f);

System.out.println("雙精度型變量d="+d);

System.out.println("字符型對象s="+s);

}}當(dāng)前第24頁\共有64頁\編于星期三\8點(diǎn)4.變量與常量變量:在程序的運(yùn)行過程中數(shù)值可變的數(shù)據(jù)。聲明變量又稱創(chuàng)建變量,執(zhí)行變量聲明語句時,系統(tǒng)根據(jù)變量的數(shù)據(jù)類型在內(nèi)存中開辟相應(yīng)的內(nèi)存空間并登記變量名稱、初始值等信息。Java變量有一定的生存期和有效范圍:Java用大括號將若干語句組成語句塊,變量的有效范圍就是聲明語句所在的語句塊,一旦程序的執(zhí)行離開了這個語句塊,變量不能再使用。publicclassUseVariable{publicstaticvoidmain(Stringargs[]){ booleanb=true; shortsi=128; {inti=5; } System.out.println("b="+b);?? System.out.println("i="+i);}}Exceptioninthread"main"java.lang.Error:Unresolvedcompilationproblem:icannotberesolvedatUseVariable.main(UseVariable.java:7)當(dāng)前第25頁\共有64頁\編于星期三\8點(diǎn)Java程序結(jié)構(gòu)數(shù)據(jù)類型標(biāo)識符變量與常量表達(dá)式流程控制語句小結(jié)當(dāng)前第26頁\共有64頁\編于星期三\8點(diǎn)5.表達(dá)式表達(dá)式:由變量、常量、對象、方法調(diào)用和操作符組成的式子

符合語法規(guī)則的表達(dá)式可以被編譯系統(tǒng)理解、執(zhí)行或計(jì)算,表達(dá)式的值就是對它運(yùn)算后所得的結(jié)果。常用的Java操作符:賦值運(yùn)算符、算術(shù)運(yùn)算符、關(guān)系運(yùn)算符和邏輯運(yùn)算符等當(dāng)前第27頁\共有64頁\編于星期三\8點(diǎn)5.表達(dá)式(1)賦值運(yùn)算符與強(qiáng)制類型轉(zhuǎn)換 賦值運(yùn)算使用賦值運(yùn)算符:

=右邊的表達(dá)式可以是常量、另一個變量、方法的返回值。 如:i=0; k=i+5;

myFirstString=myDouble.toString();

mySecondString=myFirstString;

變量或?qū)ο?表達(dá)式;當(dāng)前第28頁\共有64頁\編于星期三\8點(diǎn)5.表達(dá)式(1)賦值運(yùn)算符與強(qiáng)制類型轉(zhuǎn)換Java是強(qiáng)類型語言,在進(jìn)行運(yùn)算時,首先進(jìn)行類型檢查:如果類型不一致,則會按照某種規(guī)則自動進(jìn)行轉(zhuǎn)換,按照轉(zhuǎn)換后的類型進(jìn)行操作;如果類型不一致而且不能轉(zhuǎn)換,則會報錯。在賦值運(yùn)算中,如果等號左邊的數(shù)據(jù)類型和等號右邊的數(shù)據(jù)類型不一致,需要把等號右邊的數(shù)據(jù)類型轉(zhuǎn)化成等號左邊的數(shù)據(jù)類型。Java的類型轉(zhuǎn)換有較嚴(yán)格的規(guī)定:凡是將變量從占用內(nèi)存較少的短數(shù)據(jù)類型轉(zhuǎn)化成占用內(nèi)存較多的長數(shù)據(jù)類型時,自動類型轉(zhuǎn)換聲明;而將變量從較長的數(shù)據(jù)類型轉(zhuǎn)換成較短的數(shù)據(jù)類型時,必須進(jìn)行強(qiáng)制類型轉(zhuǎn)換。 例: byteb=10; inti=-1;

把b的值賦給i:i=b;

而把i的值賦給b:b=(byte)i;b=i;Exceptioninthread"main"java.lang.Error:Unresolvedcompilationproblem:Typemismatch:cannotconvertfrominttobyteatTemp.main(Temp.java:6)當(dāng)前第29頁\共有64頁\編于星期三\8點(diǎn)5.表達(dá)式(1)賦值運(yùn)算符與強(qiáng)制類型轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換:(數(shù)據(jù)類型)變量名或表達(dá)式; 例如:inti=99;byteb=(byte)i;charc=(char)i;floatf=(float)i強(qiáng)制類型轉(zhuǎn)換可能會導(dǎo)致溢出或精度的下降。

byteb=99;可以,直接把值99轉(zhuǎn)換為(byte)99賦給了byte,不溢出;

byteb=9999;編譯錯,把int值9999轉(zhuǎn)換為(byte)9999時溢出;

byteb=i;編譯錯,不能把int型變量賦給byte型變量,要強(qiáng)制轉(zhuǎn)換當(dāng)前第30頁\共有64頁\編于星期三\8點(diǎn)5.表達(dá)式(2)算術(shù)運(yùn)算

算術(shù)運(yùn)算針對數(shù)值類型操作數(shù)進(jìn)行運(yùn)算,根據(jù)操作數(shù)個數(shù)的不同,算術(shù)運(yùn)算符分為雙目運(yùn)算符和單目運(yùn)算符兩種。

當(dāng)前第31頁\共有64頁\編于星期三\8點(diǎn)5.表達(dá)式(2)算術(shù)運(yùn)算雙目運(yùn)算符:只有整數(shù)類型(byte,int,long,short)的數(shù)據(jù)才能夠進(jìn)行取余運(yùn)算,float和double不能取余。兩個整型數(shù)據(jù)做除法時,結(jié)果只截取商數(shù)的整數(shù)部分,而小數(shù)部分被截斷,如1/2=0。如果希望保留小數(shù)部分,應(yīng)對操作數(shù)做強(qiáng)制類型轉(zhuǎn)換,如((float)1)/2=0.5。“整數(shù)值/0”時,執(zhí)行時拋出異常;“浮點(diǎn)值/0”得到值“+-Infinity”運(yùn)算符運(yùn)算例功能+加a+b求和-減a-b求差*乘a*b求積/除a/b求商%取余a%b求余數(shù)當(dāng)前第32頁\共有64頁\編于星期三\8點(diǎn)5.表達(dá)式(2)算術(shù)運(yùn)算單目運(yùn)算符:操作數(shù)只有一個“++a”和“a++”的執(zhí)行順序不同:

++a:先a加1,再使用a; a++:先使用a,再a加1。

(“--a”與“a--”同理)。單目運(yùn)算符的位置不同,雖然對操作數(shù)變量沒有影響,但卻會改變整個表達(dá)式的值。 例:intx=2;inty=(++x)*3; 結(jié)果:x=3,y=9

intx=2;inty=(x++)*3; 結(jié)果:x=3,y=6運(yùn)算符運(yùn)算例功能++自增a++或++aa=a+1--自減a--或--aa=a-1-求反-aa=-a當(dāng)前第33頁\共有64頁\編于星期三\8點(diǎn)5.表達(dá)式importjava.applet.*;importjava.awt.*;importjava.awt.event.*;publicclassUseArithmeticextendsAppletimplementsActionListener{Labelprompt;TextFieldinput1,input2;Buttonbtn;inta=0,b=1;publicvoidinit(){prompt=newLabel("請輸入兩個整型數(shù)據(jù):");

input1=newTextField(5);

input2=newTextField(5);

btn=newButton("計(jì)算");

add(prompt);

add(input1);

add(input2);

add(btn);

btn.addActionListener(this);}

publicvoidpaint(Graphicsg)

{ g.drawString(a+"+"+b+"="+(a+b),10,50);

g.drawString(a+"-"+b+"="+(a-b),10,70);

g.drawString(a+"*"+b+"="+(a*b),10,90);

g.drawString(a+"/"+b+"="+(a/b),10,110);

g.drawString(a+"%"+b+"="+(a%b),10,130);}

publicvoidactionPerformed(ActionEvente)

{ a=Integer.parseInt(input1.getText());

b=Integer.parseInt(input2.getText());

repaint();}}當(dāng)前第34頁\共有64頁\編于星期三\8點(diǎn)5.表達(dá)式(3)關(guān)系運(yùn)算 關(guān)系運(yùn)算:比較兩個數(shù)據(jù)之間的大小關(guān)系,返回布爾值true或false。關(guān)系運(yùn)算符都是雙目運(yùn)算符。 例:intx=5,y=7; booleanb=(x==y); 則b的值是false。 注:區(qū)分等于號“==”和賦值號“=”當(dāng)前第35頁\共有64頁\編于星期三\8點(diǎn)5.表達(dá)式(4)邏輯運(yùn)算對布爾型數(shù)據(jù)進(jìn)行運(yùn)算,運(yùn)算結(jié)果仍然是布爾值。Java對邏輯與和邏輯或提供短路操作功能:進(jìn)行運(yùn)算時,先計(jì)算運(yùn)算符左側(cè)表達(dá)式的值,如果使用該值能得到整個表達(dá)式的值,則跳過運(yùn)算符右側(cè)表達(dá)式的計(jì)算;否則計(jì)算運(yùn)算符右側(cè)表達(dá)式,并得到整個表達(dá)式的值。

如:intx=21,y=10,z=5;

if((x>y)||(y-->z))System.out.println("y="+y);

//y=10當(dāng)前第36頁\共有64頁\編于星期三\8點(diǎn)5.表達(dá)式(5)其他運(yùn)算符復(fù)雜賦值運(yùn)算符:在先進(jìn)行運(yùn)算,再把運(yùn)算的結(jié)果做賦值。

運(yùn)算符例子等價于+=x+=ax=x+a-=x-=ax=x-a*=x*=ax=x*a/=x/=ax=x/a%=x%=ax=x%a&=x&=ax=x&a|=x|=ax=x|a^=x^=ax=x^a<<=x<<=ax=x<<a>>=x>>=ax=x>>a<<<=x<<<=ax=x<<<a當(dāng)前第37頁\共有64頁\編于星期三\8點(diǎn)5.表達(dá)式條件運(yùn)算符:condition?expression1:expression2 其中:condition是一個布爾表達(dá)式。 運(yùn)算順序:先計(jì)算表達(dá)式condition的值,若為真,則整個三目運(yùn)算的結(jié)果為表達(dá)式expression1的值;若為假,則整個運(yùn)算結(jié)果為表達(dá)式expression2的值。 例:inta,b,c,max;

max=(a>b)?a:b;

max=(max>c)?max:c;當(dāng)前第38頁\共有64頁\編于星期三\8點(diǎn)5.表達(dá)式括號與方括號: 括號運(yùn)算符():改變表達(dá)式運(yùn)算順序;或者代表方法或函數(shù)的調(diào)用優(yōu)先級在所有的運(yùn)算符中是最高的 方括號運(yùn)算符[]:數(shù)組運(yùn)算符對象運(yùn)算符:instanceof

對象運(yùn)算符instanceof用來測定一個對象是否屬于某一個指定類或其子類的實(shí)例,如果是則返回true,否則返回false。 例如:booleanb=MyObjectinstanceofTextField;當(dāng)前第39頁\共有64頁\編于星期三\8點(diǎn)5.表達(dá)式字符串連接運(yùn)算符:用于將兩個字符串(常量或變量)拼接成一個字符串。例: Strings=“你好,”;System.out.println(s+“JavaWorld!”);

結(jié)果為:你好,JavaWorld!當(dāng)前第40頁\共有64頁\編于星期三\8點(diǎn)5.表達(dá)式(6)運(yùn)算符的優(yōu)先級與結(jié)合性運(yùn)算符的優(yōu)先級:決定表達(dá)式中不同運(yùn)算執(zhí)行的先后順序。 如:x>y&&!Z等價于(x>y)&&(!z),關(guān)系運(yùn)算的優(yōu)先級高于邏輯運(yùn)算;

3+4*5=23,因?yàn)槌朔ㄟ\(yùn)算的優(yōu)先級比加法運(yùn)算高。運(yùn)算符的結(jié)合性:決定并列的相同優(yōu)先級的運(yùn)算的執(zhí)行順序。在一條語句中具有相同優(yōu)先級的運(yùn)算符的執(zhí)行順序由結(jié)合性順序決定。 例:a=b+c+10,+優(yōu)先于=,先執(zhí)行+;

+左結(jié)合性,先執(zhí)行(b+c)+10

當(dāng)前第41頁\共有64頁\編于星期三\8點(diǎn)優(yōu)先級描述運(yùn)算符結(jié)合性1最高優(yōu)先級.[]()左/右2單目運(yùn)算-~!++--強(qiáng)制類型轉(zhuǎn)換符右3算術(shù)乘除運(yùn)算*/%左4算術(shù)加減運(yùn)算+-左5移位運(yùn)算>><<>>>左6大小關(guān)系運(yùn)算<<=>>=左7相等關(guān)系運(yùn)算==!=左8按位與,非簡潔與&左9按位異或運(yùn)算^左10按位或,非簡潔或|左11邏輯與&&左12邏輯或||左13三目條件運(yùn)算?:右14簡單、復(fù)雜賦值=運(yùn)算符=右當(dāng)前第42頁\共有64頁\編于星期三\8點(diǎn)Java程序結(jié)構(gòu)標(biāo)識符數(shù)據(jù)類型變量與常量表達(dá)式語句小結(jié)當(dāng)前第43頁\共有64頁\編于星期三\8點(diǎn)6.語句語句:是用編程語言來書寫的命令,用于向計(jì)算機(jī)發(fā)出操作指令,能導(dǎo)致某種動作的發(fā)生。一個語句代表了Java程序中發(fā)生的一個動作:

如:intstudentNum=295;

System.out.println(“HelloWorld!”);

aCar.height=2553;語句以分號作為結(jié)束符。當(dāng)前第44頁\共有64頁\編于星期三\8點(diǎn)6.語句Java語言中的語句:流程控制語句:完成一定的控制功能,8種:if…else…;for();while()…;do…while();continue;break;switch;return方法調(diào)用語句:執(zhí)行對象的某個方法,如

System.out.println(“HelloWorld!”);表達(dá)式語句:表達(dá)式+分號,如i=i+1;空語句:如for(i=0;i<100;i++);復(fù)合語句(塊):由{}將一些語句括起來構(gòu)成,如{a=b+c;t=a*100;}當(dāng)前第45頁\共有64頁\編于星期三\8點(diǎn)6.流程控制語句流程控制語句:用來控制程序中各語句執(zhí)行順序,是程序的基本部分。流程控制方式:順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。當(dāng)前第46頁\共有64頁\編于星期三\8點(diǎn)6.流程控制語句流程控制方式:順序結(jié)構(gòu):按照書寫的順序依次執(zhí)行語句,是最簡單的流程結(jié)構(gòu);分支結(jié)構(gòu):又稱為選擇結(jié)構(gòu),它將根據(jù)計(jì)算所得的表達(dá)式的值來判斷應(yīng)選擇執(zhí)行哪一個流程的分支;循環(huán)結(jié)構(gòu):在滿足特定條件的情況下反復(fù)執(zhí)行一段語句。這三種結(jié)構(gòu)構(gòu)成了程序局部模塊的基本框架當(dāng)前第47頁\共有64頁\編于星期三\8點(diǎn)6.流程控制語句(1)分支語句:實(shí)現(xiàn)雙分支的if語句和實(shí)現(xiàn)多分支的switch語句if語句:條件表達(dá)式用來選擇判斷程序的流程走向,在程序的實(shí)際執(zhí)行過程中,如果條件表達(dá)式的取值為真,則執(zhí)行if分支的語句塊,否則執(zhí)行else分支的語句塊。

if(條件表達(dá)式)

語句塊1;

//if分支else

語句塊2;

//else分支if(條件表達(dá)式)

語句塊;

//if分支其它語句;當(dāng)前第48頁\共有64頁\編于星期三\8點(diǎn)(1)分支語句:實(shí)現(xiàn)雙分支的if語句和實(shí)現(xiàn)多分支的switch語句。switch語句:多分支的選擇語句,格式如下:

switch執(zhí)行過程:首先計(jì)算表達(dá)式的值,這個值必須是整型或字符型,同時應(yīng)與各個case分支的值的類型相一致。計(jì)算出表達(dá)式的值之后,將它先與第一個case分支的值相比較,若相同,則程序的流程轉(zhuǎn)入第一個case分支的語句塊;否則,再將表達(dá)式的值與第二個case分支相比較……依此類推。如果表達(dá)式的值與任何一個case分支都不相同,則轉(zhuǎn)而執(zhí)行最后的default分支;在default分支不存在的情況下,則跳出整個switch語句。6.流程控制語句switch(表達(dá)式){case值1:語句塊1//分支1

case值2:語句塊2//分支2

……

case值n:語句塊n//分支n

default:語句塊n+1//分支n+1}當(dāng)前第49頁\共有64頁\編于星期三\8點(diǎn)6.流程控制語句(1)分支語句:實(shí)現(xiàn)雙分支的if語句和實(shí)現(xiàn)多分支的switch語句。switch語句:每個case判斷只指明流程分支的入口點(diǎn),而不指定分支的出口點(diǎn),分支的出口點(diǎn)需要用相應(yīng)的跳轉(zhuǎn)語句來標(biāo)明。假設(shè)變量MyGrade的值為A,執(zhí) 行完switch語句后,變量MyScore

的值被賦成0而不是5!switch(MyGrade){case′A′:MyScore=5;case′B′:MyScore=4;case′C′:MyScore=3;default:MyScore=0;}當(dāng)前第50頁\共有64頁\編于星期三\8點(diǎn)6.流程控制語句break是流程跳轉(zhuǎn)語句。通過引入break語句,定義了各分支的出口,多分支開關(guān)語句的結(jié)構(gòu)就完整了。switch(MyGrade){case′A′:MyScore=5;break;case′B′:MyScore=4;break;case′C′:MyScore=3;break;default:MyScore=0;}當(dāng)前第51頁\共有64頁\編于星期三\8點(diǎn)6.流程控制語句

(2)循環(huán)語句:在一定條件下,反復(fù)執(zhí)行某段程序的流程結(jié)構(gòu)。被反復(fù)執(zhí)行的程序被稱為循環(huán)體。循環(huán)結(jié)構(gòu)是非常重要的流程控制結(jié)構(gòu),它是由循環(huán)語句來實(shí)現(xiàn)的。

Java循環(huán)語句有:while語句、do-while語句和for語句。當(dāng)前第52頁\共有64頁\編于星期三\8點(diǎn)6.流程控制語句(2)循環(huán)語句:

while語句語法格式如下:

其中條件表達(dá)式的返回值為布爾型,循環(huán)體可以是單個語句,也可以是復(fù)合語句塊。

while語句的執(zhí)行過程:先判斷條件表達(dá)式的值,若為真,則執(zhí)行循環(huán)體,循環(huán)體執(zhí)行完之后再無條件轉(zhuǎn)向條件表達(dá)式再做計(jì)算與判斷;當(dāng)計(jì)算出條件表達(dá)式為假時,跳過循環(huán)體執(zhí)行while語句后面的語句。while(條件表達(dá)式)

循環(huán)體當(dāng)前第53頁\共有64頁\編于星期三\8點(diǎn)6.流程控制語句

例:所有的水仙花數(shù)并輸出。水仙花數(shù)是三位數(shù),它的各位數(shù)字的立方和等于這個三位數(shù)本身,例如371=33+73+13,則371就是一個水仙花數(shù)。publicclassNarcissus{publicstaticvoidmain(Stringargs[]){ inti,j,k,n=100,m=1; while(n<1000) {i=n/100; j=(n-i*100)/10; k=n%10; if((Math.pow(i,3)+Math.pow(j,3)+Math.pow(k,3))==n) System.out.println("找到第"+m+++"個水仙花數(shù):"+n);

n++;

}

}}當(dāng)前第54頁\共有64頁\編于星期三\8點(diǎn)6.流程控制語句(2)循環(huán)語句:

do-while語句語法結(jié)構(gòu)如下:

do-while語句的執(zhí)行過程:無條件地先執(zhí)行一遍循環(huán)體,再來判斷條件表達(dá)式。若表達(dá)式的值為真,則再運(yùn)行循環(huán)體,否則跳出do-while循環(huán),執(zhí)行后面的語句。

do-while語句特點(diǎn):循環(huán)體將至少被執(zhí)行一次。do

循環(huán)體while(條件表達(dá)式);當(dāng)前第55頁\共有64頁\編于星期三\8點(diǎn)6.流程控制語句importjava.io.*;publicclassshowCharValue{publicstaticvoidmain(Stringargs[]){charch;try {System.out.println("請輸入一個字符,以'#'結(jié)束");

do

{ ch=(char)System.in.read();

System.out.println("字符"+ch+"的整數(shù)值為"+(int)ch);

System.in.skip(2);//跳過回車鍵

}while(ch!='#'); }catch(IOExceptione) {System.err.println(e.toString()); }}}當(dāng)前第56頁\共有64頁\編于星期三\8點(diǎn)6.流程控制語句(2)循環(huán)語句:

for語句:是Java語言功能較強(qiáng)、使用較廣泛的循環(huán)語句,語法格式如下: 表達(dá)式2是返回布爾值的條件表達(dá)式,用來判斷循環(huán)是否繼續(xù);表達(dá)式1完成初始化循環(huán)變量和其他變量的工作;表達(dá)式3用來修改循環(huán)變量,改變循環(huán)條件。三個表達(dá)式之間用分號隔開。for(表達(dá)式1;表達(dá)式2;表達(dá)式3)

循環(huán)體當(dāng)前第57頁\共有64頁\編于星期三\8點(diǎn)6.流程控制語句for語句的執(zhí)行過程:

首先計(jì)算表達(dá)式1,完成必要的初始化工作;再判斷表達(dá)式2的值,若為真,則執(zhí)行循環(huán)體,執(zhí)行完循環(huán)體后再返回表達(dá)式3,計(jì)算并修改循環(huán)條件,這樣一輪循環(huán)就結(jié)束了。 第二輪循環(huán)從計(jì)算并判斷表達(dá)式2開始,若表達(dá)式的值仍為真,則繼續(xù)循環(huán),否則跳出整個for語句執(zhí)行下面的句子。

for語句的三個表達(dá)式都可以為空,但若表達(dá)式2也為空,則表示

溫馨提示

  • 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

提交評論