版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第二節(jié)語言基礎第1頁,課件共66頁,創(chuàng)作于2023年2月Java程序結構標識符數(shù)據(jù)類型變量與常量運算符與表達式流程控制語句小結第2頁,課件共66頁,創(chuàng)作于2023年2月1.Java程序的構成靜態(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主類類體屬性第3頁,課件共66頁,創(chuàng)作于2023年2月1.Java程序的構成Java源程序是由類的定義組成的。每個Java源程序中可以定義若干個類,其中只有一個類是主類,主類是Java程序執(zhí)行的入口點。在JavaApplication中,主類是指包含main方法的類;在JavaApplet里,主類是系統(tǒng)類Applet的子類。Java源程序以.java為后綴,名字與主類名一致。第4頁,課件共66頁,創(chuàng)作于2023年2月1.Java程序的構成類的定義由類頭定義和類體定義兩部分組成,使用關鍵字class。類頭部分除了定義類名之外,還可以說明類的繼承特性。當一個類被定義為是另一個類(稱父類)的子類時,它可以從父類中繼承父類中的類成員。類體部分用來定義屬性和方法這兩種類的成員,方法類似于其他高級語言中的函數(shù),屬性則類似于變量。第5頁,課件共66頁,創(chuàng)作于2023年2月1.Java程序的構成語句是構成Java程序的基本單位之一。Java語句以分號(;)結束,其構成應該符合Java的語法規(guī)則。Java程序是由類定義組成的,類內部包括類的屬性聲明和類的方法兩部分。除屬性聲明語句之外,其他的語句(執(zhí)行具體操作)只能存在于方法的大括號之中,不能寫在方法的外面。表達式、變量、常量和關鍵字等:比語句更小的語言單位,語句就是由它們構成的。第6頁,課件共66頁,創(chuàng)作于2023年2月1.Java程序的構成publicclassMyJavaClass{ publicstaticvoidmain(String[]args) { System.out.println(“AmIWrong?”) System.out.println(“程序結束?!?; }}classUser{ privateStringuserMeg; publicStringgetMeg() { userMeg=“StringfromUser”; returnuserMeg;}}第7頁,課件共66頁,創(chuàng)作于2023年2月Java程序結構標識符數(shù)據(jù)類型變量與常量表達式流程控制語句小結第8頁,課件共66頁,創(chuàng)作于2023年2月2.標識符任何一個類、方法、對象、變量和常量都需要有一個名字標志它的存在,即標識符。Java對于標識符的定義有如下的規(guī)定:標識符由字母、數(shù)字和下劃線、美元符號($)組成。標識符必須以字母、下劃線(_)或美元符號($)開頭。不能為關鍵詞,如class、publicJava區(qū)分大小寫,在定義和使用時要特別注意。第9頁,課件共66頁,創(chuàng)作于2023年2月2.標識符FirstJavaApplet _$theLastOneMySalary12 JavaBuilderl273.15 _isTrueA% Tree&Glass
5w if第10頁,課件共66頁,創(chuàng)作于2023年2月Java程序結構標識符基本數(shù)據(jù)類型變量與常量表達式流程控制語句小結第11頁,課件共66頁,創(chuàng)作于2023年2月3.數(shù)據(jù)類型基本數(shù)據(jù)類型關鍵字占用位數(shù)默認值取值范圍布爾型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第12頁,課件共66頁,創(chuàng)作于2023年2月3.數(shù)據(jù)類型Java的基本數(shù)據(jù)類型:Java的各種數(shù)據(jù)類型占用固定的位數(shù),與具體的軟硬件平臺環(huán)境無關,保證Java的跨平臺特性;Java的每種數(shù)據(jù)類型都對應有默認值,保證Java的安全穩(wěn)定性。int類型是最常用的整數(shù)類型,它表示的數(shù)據(jù)范圍足夠大,能滿足一般需求。byte用來處理未經加工的二進制數(shù)據(jù),每個byte型常量或變量中包含8位(bit)的二進制信息。boolean用來表示布爾型數(shù)據(jù)。boolean型變量或常量的取值只有true和false兩個:true代表“真”,false代表“假”。第13頁,課件共66頁,創(chuàng)作于2023年2月3.數(shù)據(jù)類型char字符型數(shù)據(jù):Java的字符類型采用了Unicode編碼。Unicode編碼是一種國際標準編碼方案,每個Unicode碼占用16位,可以表示216=64K個不同的字符,可以完全涵蓋多種語言的字符集。ASCII碼僅是Unicode碼的子集。Unicode字符通常用字符或者十六進制編碼'\u****'表示,其中'\u0000'~'\u00FF'為ASCII字符,'\u'表示這是一個Unicode值。例如:charc=‘A’;charA=‘\u0041’第14頁,課件共66頁,創(chuàng)作于2023年2月3.數(shù)據(jù)類型之前列出的數(shù)據(jù)類型都是基本數(shù)據(jù)類型,Java是典型的面向對象語言,Java中最重要的數(shù)據(jù)類型是引用數(shù)據(jù)類型(reference),包括類和接口等。引用數(shù)據(jù)類型在包含基本數(shù)據(jù)類型所表示的特定范圍、特定格式的數(shù)值的同時,還包含了一些特定的方法,用來對數(shù)值進行專門操作
例:Array,Date,TreeSet,…… MyJavaApplication,……
引用類型將在第三節(jié)介紹第15頁,課件共66頁,創(chuàng)作于2023年2月Java程序結構標識符數(shù)據(jù)類型變量與常量表達式流程控制語句小結第16頁,課件共66頁,創(chuàng)作于2023年2月4.變量與常量常量:在程序運行過程中值不會改變。Java中的常量根據(jù)數(shù)據(jù)類型的不同也區(qū)分為不同的常量類型,如布爾常量、整型常量、字符常量、浮點常量和字符串常量。在程序中使用關鍵字final定義常量:
注:常量必須有初始值。 如:finaldoublePI=3.1415926 finalStringMSG=“thecodeisunicode”finaldatatypeconsName=value;第17頁,課件共66頁,創(chuàng)作于2023年2月4.變量與常量(1)布爾常量:包括true和false,分別代表邏輯真和邏輯假。
(2)整型常量整型常量可以采用十進制、八進制和十六進制表示:十進制的整型常量:非0開頭的數(shù)值,如100,-50;八進制的整型常量:以0開頭的數(shù)值,如017代表數(shù)字15;十六進制的整型常量:0x開頭的數(shù)值,如0x2F代表數(shù)字47。整型常量按照所占用的內存長度,可分為一般整型常量(32位)和長整型常量(64位)。長整型常量的尾部有一個大寫的L或小寫的l,如-386L,017777l。第18頁,課件共66頁,創(chuàng)作于2023年2月4.變量與常量(3)浮點常量:表示可以含有小數(shù)部分的數(shù)值常量根據(jù)占用內存長度的不同,可以分為一般浮點常量和雙精度浮點常量:一般浮點常量占32位,用F、f表示,如19.4F,3.0513E3f,8701.52f;雙精度浮點常量占用64位內存,用帶D或d或不加后綴的數(shù)值表示,如2.433E-5D,700041.273d,3.1415。表示方法:一般表示法、指數(shù)表示法第19頁,課件共66頁,創(chuàng)作于2023年2月4.變量與常量(4)字符常量字符常量用一對單引號括起的單個字符表示,字母表中的字符,如′a′、′Z′、′8′、′#′;轉義字符;要表示的字符所對應的八進制數(shù)或Unicode碼。轉義字符:Java中有一些特殊的、很難用一般方式表達的字符,如回車、換行等。為了表達這些特殊字符,Java中引入了一些特別的字符,它具有特定的含義,不同于字符原有的意義,稱“轉義”字符。以反斜線(\)開頭,后面跟著一個字符來表示特定的字符第20頁,課件共66頁,創(chuàng)作于2023年2月4.變量與常量
System.out.println("\"It\'sfreezinginhere\",\nhesaidcoldly.");
"It'sfreezinginhere",hesaidcoldly.第21頁,課件共66頁,創(chuàng)作于2023年2月4.變量與常量(5)字符串常量字符串常量是用雙引號括起的若干個字符(可以是0個)。字符串中可以包括轉義符,標志字符串開始和結束的雙引號必須在源代碼的同一行上。如:”Hello”,”My\nJava”,”Howareyou?1”,””可以使用連接操作符(+)把兩個或更多的字符串常量串接在一起,組成一個更長的字符串。如:“Howdoyoudo?”+“
\n”“
Howdoyoudo?\n”第22頁,課件共66頁,創(chuàng)作于2023年2月4.變量與常量變量:在程序的運行過程中數(shù)值可變的數(shù)據(jù)。Java中的變量必須先聲明后使用,指明變量的數(shù)據(jù)類型、名稱或初始值。聲明變量的語句格式為: 其中type為變量類型(包括基本數(shù)據(jù)類型和引用類型),varName為變量名,value為初始值。 如:booleanmFlag=true; charmyCharacter=′B′; longmyLong=-375L; intmCount=65536; doublemScroe;typevarName[=value];第23頁,課件共66頁,創(chuàng)作于2023年2月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("浮點型變量f="+f); System.out.println("雙精度型變量d="+d); System.out.println("字符型對象s="+s);}}第24頁,課件共66頁,創(chuàng)作于2023年2月4.變量與常量變量:在程序的運行過程中數(shù)值可變的數(shù)據(jù)。聲明變量又稱創(chuàng)建變量,執(zhí)行變量聲明語句時,系統(tǒng)根據(jù)變量的數(shù)據(jù)類型在內存中開辟相應的內存空間并登記變量名稱、初始值等信息。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)第25頁,課件共66頁,創(chuàng)作于2023年2月Java程序結構數(shù)據(jù)類型標識符變量與常量表達式流程控制語句小結第26頁,課件共66頁,創(chuàng)作于2023年2月5.表達式表達式:由變量、常量、對象、方法調用和操作符組成的式子
符合語法規(guī)則的表達式可以被編譯系統(tǒng)理解、執(zhí)行或計算,表達式的值就是對它運算后所得的結果。常用的Java操作符:賦值運算符、算術運算符、關系運算符和邏輯運算符等第27頁,課件共66頁,創(chuàng)作于2023年2月5.表達式(1)賦值運算符與強制類型轉換 賦值運算使用賦值運算符:
=右邊的表達式可以是常量、另一個變量、方法的返回值。 如:i=0; k=i+5; myFirstString=myDouble.toString(); mySecondString=myFirstString;
變量或對象=表達式;第28頁,課件共66頁,創(chuàng)作于2023年2月5.表達式(1)賦值運算符與強制類型轉換Java是強類型語言,在進行運算時,首先進行類型檢查:如果類型不一致,則會按照某種規(guī)則自動進行轉換,按照轉換后的類型進行操作;如果類型不一致而且不能轉換,則會報錯。在賦值運算中,如果等號左邊的數(shù)據(jù)類型和等號右邊的數(shù)據(jù)類型不一致,需要把等號右邊的數(shù)據(jù)類型轉化成等號左邊的數(shù)據(jù)類型。Java的類型轉換有較嚴格的規(guī)定:凡是將變量從占用內存較少的短數(shù)據(jù)類型轉化成占用內存較多的長數(shù)據(jù)類型時,自動類型轉換聲明;而將變量從較長的數(shù)據(jù)類型轉換成較短的數(shù)據(jù)類型時,必須進行強制類型轉換。 例: 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)第29頁,課件共66頁,創(chuàng)作于2023年2月5.表達式(1)賦值運算符與強制類型轉換強制類型轉換:(數(shù)據(jù)類型)變量名或表達式; 例如:inti=99;byteb=(byte)i;charc=(char)i;floatf=(float)i強制類型轉換可能會導致溢出或精度的下降。
byteb=99;可以,直接把值99轉換為(byte)99賦給了byte,不溢出;
byteb=9999;編譯錯,把int值9999轉換為(byte)9999時溢出;
byteb=i;編譯錯,不能把int型變量賦給byte型變量,要強制轉換第30頁,課件共66頁,創(chuàng)作于2023年2月5.表達式(2)算術運算
算術運算針對數(shù)值類型操作數(shù)進行運算,根據(jù)操作數(shù)個數(shù)的不同,算術運算符分為雙目運算符和單目運算符兩種。
第31頁,課件共66頁,創(chuàng)作于2023年2月5.表達式(2)算術運算雙目運算符:只有整數(shù)類型(byte,int,long,short)的數(shù)據(jù)才能夠進行取余運算,float和double不能取余。兩個整型數(shù)據(jù)做除法時,結果只截取商數(shù)的整數(shù)部分,而小數(shù)部分被截斷,如1/2=0。如果希望保留小數(shù)部分,應對操作數(shù)做強制類型轉換,如((float)1)/2=0.5?!罢麛?shù)值/0”時,執(zhí)行時拋出異常;“浮點值/0”得到值“+-Infinity”運算符運算例功能+加a+b求和-減a-b求差*乘a*b求積/除a/b求商%取余a%b求余數(shù)第32頁,課件共66頁,創(chuàng)作于2023年2月5.表達式(2)算術運算單目運算符:操作數(shù)只有一個“++a”和“a++”的執(zhí)行順序不同:
++a:先a加1,再使用a; a++:先使用a,再a加1。
(“--a”與“a--”同理)。單目運算符的位置不同,雖然對操作數(shù)變量沒有影響,但卻會改變整個表達式的值。 例:intx=2;inty=(++x)*3; 結果:x=3,y=9
intx=2;inty=(x++)*3; 結果:x=3,y=6運算符運算例功能++自增a++或++aa=a+1--自減a--或--aa=a-1-求反-aa=-a第33頁,課件共66頁,創(chuàng)作于2023年2月5.表達式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("計算"); 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();}}第34頁,課件共66頁,創(chuàng)作于2023年2月5.表達式(3)關系運算 關系運算:比較兩個數(shù)據(jù)之間的大小關系,返回布爾值true或false。關系運算符都是雙目運算符。 例:intx=5,y=7; booleanb=(x==y); 則b的值是false。 注:區(qū)分等于號“==”和賦值號“=”第35頁,課件共66頁,創(chuàng)作于2023年2月5.表達式(4)邏輯運算對布爾型數(shù)據(jù)進行運算,運算結果仍然是布爾值。Java對邏輯與和邏輯或提供短路操作功能:進行運算時,先計算運算符左側表達式的值,如果使用該值能得到整個表達式的值,則跳過運算符右側表達式的計算;否則計算運算符右側表達式,并得到整個表達式的值。
如:intx=21,y=10,z=5; if((x>y)||(y-->z))System.out.println("y="+y); //y=10第36頁,課件共66頁,創(chuàng)作于2023年2月5.表達式(5)其他運算符復雜賦值運算符:在先進行運算,再把運算的結果做賦值。
運算符例子等價于+=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第37頁,課件共66頁,創(chuàng)作于2023年2月5.表達式條件運算符:condition?expression1:expression2 其中:condition是一個布爾表達式。 運算順序:先計算表達式condition的值,若為真,則整個三目運算的結果為表達式expression1的值;若為假,則整個運算結果為表達式expression2的值。 例:inta,b,c,max; max=(a>b)?a:b; max=(max>c)?max:c;第38頁,課件共66頁,創(chuàng)作于2023年2月5.表達式括號與方括號: 括號運算符():改變表達式運算順序;或者代表方法或函數(shù)的調用優(yōu)先級在所有的運算符中是最高的 方括號運算符[]:數(shù)組運算符對象運算符:instanceof
對象運算符instanceof用來測定一個對象是否屬于某一個指定類或其子類的實例,如果是則返回true,否則返回false。 例如:booleanb=MyObjectinstanceofTextField;第39頁,課件共66頁,創(chuàng)作于2023年2月5.表達式字符串連接運算符:用于將兩個字符串(常量或變量)拼接成一個字符串。例: Strings=“你好,”;System.out.println(s+“JavaWorld!”);
結果為:你好,JavaWorld!第40頁,課件共66頁,創(chuàng)作于2023年2月5.表達式(6)運算符的優(yōu)先級與結合性運算符的優(yōu)先級:決定表達式中不同運算執(zhí)行的先后順序。 如:x>y&&!Z等價于(x>y)&&(!z),關系運算的優(yōu)先級高于邏輯運算; 3+4*5=23,因為乘法運算的優(yōu)先級比加法運算高。運算符的結合性:決定并列的相同優(yōu)先級的運算的執(zhí)行順序。在一條語句中具有相同優(yōu)先級的運算符的執(zhí)行順序由結合性順序決定。 例:a=b+c+10,+優(yōu)先于=,先執(zhí)行+;
+左結合性,先執(zhí)行(b+c)+10
第41頁,課件共66頁,創(chuàng)作于2023年2月優(yōu)先級描述運算符結合性1最高優(yōu)先級.[]()左/右2單目運算-~!++--強制類型轉換符右3算術乘除運算*/%左4算術加減運算+-左5移位運算>><<>>>左6大小關系運算<<=>>=左7相等關系運算==!=左8按位與,非簡潔與&左9按位異或運算^左10按位或,非簡潔或|左11邏輯與&&左12邏輯或||左13三目條件運算?:右14簡單、復雜賦值=運算符=右第42頁,課件共66頁,創(chuàng)作于2023年2月Java程序結構標識符數(shù)據(jù)類型變量與常量表達式語句小結第43頁,課件共66頁,創(chuàng)作于2023年2月6.語句語句:是用編程語言來書寫的命令,用于向計算機發(fā)出操作指令,能導致某種動作的發(fā)生。一個語句代表了Java程序中發(fā)生的一個動作:
如:intstudentNum=295; System.out.println(“HelloWorld!”); aCar.height=2553;語句以分號作為結束符。第44頁,課件共66頁,創(chuàng)作于2023年2月6.語句Java語言中的語句:流程控制語句:完成一定的控制功能,8種:if…else…;for();while()…;do…while();continue;break;switch;return方法調用語句:執(zhí)行對象的某個方法,如
System.out.println(“HelloWorld!”);表達式語句:表達式+分號,如i=i+1;空語句:如for(i=0;i<100;i++);復合語句(塊):由{}將一些語句括起來構成,如{a=b+c;t=a*100;}第45頁,課件共66頁,創(chuàng)作于2023年2月6.流程控制語句流程控制語句:用來控制程序中各語句執(zhí)行順序,是程序的基本部分。流程控制方式:順序結構、分支結構和循環(huán)結構。第46頁,課件共66頁,創(chuàng)作于2023年2月6.流程控制語句流程控制方式:順序結構:按照書寫的順序依次執(zhí)行語句,是最簡單的流程結構;分支結構:又稱為選擇結構,它將根據(jù)計算所得的表達式的值來判斷應選擇執(zhí)行哪一個流程的分支;循環(huán)結構:在滿足特定條件的情況下反復執(zhí)行一段語句。這三種結構構成了程序局部模塊的基本框架第47頁,課件共66頁,創(chuàng)作于2023年2月6.流程控制語句(1)分支語句:實現(xiàn)雙分支的if語句和實現(xiàn)多分支的switch語句if語句:條件表達式用來選擇判斷程序的流程走向,在程序的實際執(zhí)行過程中,如果條件表達式的取值為真,則執(zhí)行if分支的語句塊,否則執(zhí)行else分支的語句塊。
if(條件表達式)
語句塊1;
//if分支else
語句塊2;
//else分支if(條件表達式)
語句塊;
//if分支其它語句;第48頁,課件共66頁,創(chuàng)作于2023年2月(1)分支語句:實現(xiàn)雙分支的if語句和實現(xiàn)多分支的switch語句。switch語句:多分支的選擇語句,格式如下:
switch執(zhí)行過程:首先計算表達式的值,這個值必須是整型或字符型,同時應與各個case分支的值的類型相一致。計算出表達式的值之后,將它先與第一個case分支的值相比較,若相同,則程序的流程轉入第一個case分支的語句塊;否則,再將表達式的值與第二個case分支相比較……依此類推。如果表達式的值與任何一個case分支都不相同,則轉而執(zhí)行最后的default分支;在default分支不存在的情況下,則跳出整個switch語句。6.流程控制語句switch(表達式){case值1:語句塊1//分支1case值2:語句塊2//分支2……case值n:語句塊n//分支ndefault:語句塊n+1//分支n+1}第49頁,課件共66頁,創(chuàng)作于2023年2月6.流程控制語句(1)分支語句:實現(xiàn)雙分支的if語句和實現(xiàn)多分支的switch語句。switch語句:每個case判斷只指明流程分支的入口點,而不指定分支的出口點,分支的出口點需要用相應的跳轉語句來標明。假設變量MyGrade的值為A,執(zhí) 行完switch語句后,變量MyScore
的值被賦成0而不是5!switch(MyGrade){case′A′:MyScore=5;case′B′:MyScore=4;case′C′:MyScore=3;default:MyScore=0;}第50頁,課件共66頁,創(chuàng)作于2023年2月6.流程控制語句break是流程跳轉語句。通過引入break語句,定義了各分支的出口,多分支開關語句的結構就完整了。switch(MyGrade){case′A′:MyScore=5;break;case′B′:MyScore=4;break;case′C′:MyScore=3;break;default:MyScore=0;}第51頁,課件共66頁,創(chuàng)作于2023年2月6.流程控制語句
(2)循環(huán)語句:在一定條件下,反復執(zhí)行某段程序的流程結構。被反復執(zhí)行的程序被稱為循環(huán)體。循環(huán)結構是非常重要的流程控制結構,它是由循環(huán)語句來實現(xiàn)的。
Java循環(huán)語句有:while語句、do-while語句和for語句。第52頁,課件共66頁,創(chuàng)作于2023年2月6.流程控制語句(2)循環(huán)語句:
while語句語法格式如下:
其中條件表達式的返回值為布爾型,循環(huán)體可以是單個語句,也可以是復合語句塊。
while語句的執(zhí)行過程:先判斷條件表達式的值,若為真,則執(zhí)行循環(huán)體,循環(huán)體執(zhí)行完之后再無條件轉向條件表達式再做計算與判斷;當計算出條件表達式為假時,跳過循環(huán)體執(zhí)行while語句后面的語句。while(條件表達式)
循環(huán)體第53頁,課件共66頁,創(chuàng)作于2023年2月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++; }}}第54頁,課件共66頁,創(chuàng)作于2023年2月6.流程控制語句(2)循環(huán)語句: do-while語句語法結構如下:
do-while語句的執(zhí)行過程:無條件地先執(zhí)行一遍循環(huán)體,再來判斷條件表達式。若表達式的值為真,則再運行循環(huán)體,否則跳出do-while循環(huán),執(zhí)行后面的語句。
do-while語句特點:循環(huán)體將至少被執(zhí)行一次。do
循環(huán)體while(條件表達式);第55頁,課件共66頁,創(chuàng)作于2023年2月6.流程控制語句importjava.io.*;publicclassshowCharValue{publicstaticvoidmain(Stringargs[]){charch;try {System.out.println("請輸入一個字符,以'#'結束"); 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()); }}}第56頁,課件共66頁,創(chuàng)作于2023年2月6.流程控制語句(2)循環(huán)語句: for語句:是Java語言功能較強、使用較廣泛的循環(huán)語句,語法格式如下: 表達式2是返回布爾值的條件表達式,用來判斷循環(huán)是否繼續(xù);表達式1完成初始化循環(huán)變量和其他變量的工作;表達式3用來修改循環(huán)變量,改變循環(huán)條件。三個表達式之間用分號隔開。for(表達式1;表達式2;表達式3)
循環(huán)體第57頁,課件共66頁,創(chuàng)作于2023年2月6.流程控制語句for語句的執(zhí)行過程:
首先計算表達式1,完成必要的初始化工作;再判斷表達式2的值,若為真,則執(zhí)行循環(huán)體,執(zhí)行完循環(huán)體后再返回表達式3,計算并修改循環(huán)條件,這樣一輪循環(huán)就結束了。 第二輪循環(huán)從計算并判斷表達式2開始,若表達式的值仍為真,則繼續(xù)循環(huán),否則跳出整個for語句執(zhí)行下面的句子。
for語句的三個表達式都可以為空,但若表達式2也為空,則表示當前循環(huán)是一個無限循環(huán),需要在循環(huán)體中書寫另外的跳轉語句終止循環(huán)。第58頁,課件共66頁,創(chuàng)作于2023年2月6.流程控制語句例:輸出10000之內的所有完全數(shù)。完全數(shù)是指等于其所有因子和(包括1但不包括這個數(shù)本身)的數(shù)。例如6=1×2×3,6=1+2+3,則6是一個完全數(shù)。publicclassPerFectNum{publicstaticvoidmain(Stringargs[]){
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 制造業(yè)生產車間安全培訓
- 口腔知識小常識
- 口腔牙體牙髓課件
- 口腔橡皮章的重要性
- 司機培訓背景圖
- 制定培訓課件的目的
- 制冷空調安全培訓
- 制作課程培訓心得
- 制作網課培訓
- 《我們不亂扔》課件
- 妊娠合并肺大皰破裂自發(fā)性氣胸圍手術期管理方案
- 基于大數(shù)據(jù)的醫(yī)?;痫L險防控平臺數(shù)據(jù)模型構建與實踐
- 2025年國企計算機崗位筆試真題及答案
- 水土保持規(guī)劃編制規(guī)范(2024版)
- 硫鐵資源綜合利用制酸項目施工方案
- 電池回收廠房建設方案(3篇)
- 幼兒游戲評價的可視化研究
- 果樹賠賞協(xié)議書
- 基底節(jié)出血的護理查房
- 金華東陽市國有企業(yè)招聘A類工作人員筆試真題2024
- 2025年6月29日貴州省政府辦公廳遴選筆試真題及答案解析
評論
0/150
提交評論