版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第程序設(shè)計基礎(chǔ)知識第程序設(shè)計基礎(chǔ)知識第程序設(shè)計基礎(chǔ)知識第2章程序設(shè)計基礎(chǔ)知識
教學(xué)目標(biāo):通過本章的學(xué)習(xí),了解Java程序設(shè)計相關(guān)的基本概念,掌握J(rèn)ava標(biāo)識符、關(guān)鍵字、數(shù)據(jù)類型、運算符與表達(dá)式、字符串與數(shù)組以及流程控制等編程基礎(chǔ)知識,為后續(xù)章節(jié)學(xué)習(xí)編程作準(zhǔn)備。//成績查詢模塊publicstaticvoidcjcx()throwsIOException {…}//成績排序模塊publicstaticvoidcjpx() {… }在上面的案例框架中應(yīng)用到了如下幾個知識點。(1)輸入與輸出操作;(2)分支與循環(huán)流程控制;(3)數(shù)組的定義與操作數(shù)組元素。2.1標(biāo)識符與關(guān)鍵字2.1.1標(biāo)識符在Java程序設(shè)計語言中,用來標(biāo)識變量、類、方法的名字稱為標(biāo)識符。合法的標(biāo)識符是由字母、下劃線或$符號開始的字符串,例如:studentId、studentName、student_name、_score_1、$usadollar需要注意的是,Java標(biāo)識符區(qū)分大小寫。2.1.2關(guān)鍵字在Java語言中,有一些被定義為特定意義或操作的字符串,這些字符串稱為關(guān)鍵字或保留字。abstractBooleanbreakbytecasecatchcharclasscontinuedefaultdodoubleelseextendsfalsefinalfinallyfloatforifimplementsimportinstanceofintinterfacelongnativenewnullpackageprivateprotectedpublicreturnshortstaticsuperswitchsynchronizedthisthrowthrowstransienttruetryvoidvolatilewhileJava關(guān)鍵字表2.2變量和數(shù)據(jù)類型2.2.1常量與變量1.常量常量是指在程序執(zhí)行過程中始終保持不變的量,根據(jù)數(shù)據(jù)類型的不同,常量有整型、浮點型、字符型、字符串型、布爾型等幾種。2.變量變量是在程序運行過程中可以變化的量。變量有變量名、變量的值、變量的類型以及變量的作用域等4個屬性。2.2.2數(shù)據(jù)類型1.基本數(shù)據(jù)類型1)基本數(shù)據(jù)類型介紹Java語言定義了8種基本數(shù)據(jù)類型,這8種基本數(shù)據(jù)類型又可以歸為以下4類:邏輯類型(boolean)、字符類型(char)、整數(shù)類型(byte、short、int、long)、浮點類型(double、float)。(1)邏輯類型。邏輯類型用boolean來表示,其取值只有兩個:true和false。booleantruth=true;(2)字符類型。字符類型分字符類型(char)和字符串類型(String)。①字符類型(char)。char字符必須用單引號''括起來。例如:'a' 字母a‘\r’ 轉(zhuǎn)義字符,表示回車②字符串類型。字符串用String來表示,String字符串必須用雙引號“”括起來。Stringgreeting="HappyNewyear!!";(3)整數(shù)類型(byte、short、int、long)。
整型數(shù)據(jù)的取值范圍
數(shù)據(jù)類型長度(bits)表示數(shù)值范圍舉例(說明)byte8-27~27-1100(十進(jìn)制數(shù)100)short16-215~215
-1256(十進(jìn)制數(shù)256)int32-231~231
-10127(八進(jìn)制數(shù)127)long64-263~263
-10x1AL(十六進(jìn)制長整型數(shù)1A)(4)浮點類型(double、float)。為了提高數(shù)據(jù)的表示精度,可以采用浮點類型,浮點類型包括兩種:單精度(float)和雙精度(double)。雙精度為默認(rèn)浮點數(shù)類型。數(shù)據(jù)類型長度(bits)表示數(shù)值范圍舉例(說明)float32±1.4E-45~±3.4E383.14F(十進(jìn)制數(shù)3.14)double64±4.9E-324~±1.798E3083.14E-10D(科學(xué)計數(shù)表示的雙精度浮點數(shù))3)基本數(shù)據(jù)類型的轉(zhuǎn)換Java數(shù)據(jù)類型轉(zhuǎn)換分為兩種情形:一是自動類型轉(zhuǎn)換;二是強(qiáng)制類型轉(zhuǎn)換。(1)自動類型轉(zhuǎn)換。原類型允許自動轉(zhuǎn)換的目標(biāo)類型byteshort、int、long、float、doubleshortint、long、float、doublecharint、long、float、doubleintlong、float、doublelongfloat、doublefloatdoubledouble無boolean無(2)強(qiáng)制類型轉(zhuǎn)換。強(qiáng)制類型轉(zhuǎn)換也叫顯性轉(zhuǎn)換,轉(zhuǎn)換語句的格式如下:(<data_type>)表達(dá)式2.類數(shù)據(jù)類型類數(shù)據(jù)類型(引用數(shù)據(jù)類型)是比簡單數(shù)據(jù)類型更為復(fù)雜的類型,包含編程者自己聲明的所有類型,一般用于創(chuàng)建對象。2.3運算符與表達(dá)式2.3.1運算符Java運算符有如下幾類:算術(shù)運算符、關(guān)系運算符、邏輯運算符、位運算符、賦值運算符、條件運算符。1.算術(shù)運算符算術(shù)運算符分為一元算術(shù)運算符和二元算術(shù)運算符,一元算術(shù)運算符的優(yōu)先級較二元算術(shù)運算符的高。算術(shù)運算符
類別運算符用法描述一元運算符++opt1++,++opt2自加1--opt1--,--opt2自減1++opt1正值--opt1負(fù)值二元運算符*opt1*opt2乘法/opt1/opt2除法%opt1%opt2取余+opt1+opt2加法-opt1-opt2減法publicclassMath{publicstaticvoidmain(Stringargs[]){ inta=127,b=9; floatc=12.0f; inti=10,j=20; floatx; System.out.println("a="+a+",b="+b+",c="+c); System.out.println("i="+i+",j="+j+"\n"); System.out.println("i++="+(i++)+",i="+i); System.out.println("--j="+(--j)+",j="+j); x=a%c; System.out.println("a%c="+x); System.out.println("-b="+(-b)); }}程序的運行結(jié)果如下。a=127,b=9,c=12.0i=10,j=20i++=10,i=11--j=19,j=19a%c=7.0-b=-92.關(guān)系運算符關(guān)系運算符用于比較兩個操作數(shù)之間的關(guān)系,結(jié)果為邏輯類型:true或false。關(guān)系運算符類別運算符用法描述二元運算符<opt1<opt2小于>opt1>opt2大于<=opt1<=opt2小于等于>=opt1>=opt2大于等于==opt1==opt2等于!=opt1!=opt2不等于3.邏輯運算符
類別運算符用法描述一元運算符!!opt1非二元運算符&&opt1&&opt2與||opt1||opt2或4.位運算符
類別運算符用法描述一元運算符~~opt1按位取反二元運算符<<opt1<<opt2opt1左移opt2位>>opt1>>opt2opt1右移opt2位>>>opt1>>>opt2opt1無符號右移opt2位&opt1&opt2按位與^opt1^opt2按位異或|opt1|opt2按位或條件運算符條件運算符“?:”的作用是條件判斷,相當(dāng)于一個if-else語句。條件運算符為三元運算符。其一般形式為:<boolean_expr>?<expr1>:<expr2><boolean_expr>為條件表達(dá)式,為真值,則取表達(dá)式1作為運算結(jié)果值,否則取表達(dá)式2為運算結(jié)果值。2.3.2表達(dá)式表達(dá)式是由一系列的常量、變量、方法調(diào)用、運算符組合而成的語句。2.4.1字符串Java語言提供了兩個類來處理字符串,一個是String類,另一個是StringBuffer類,它們屬于Java.lang包。(1)
String類提供的部分構(gòu)造方法。①String():初始化一個新創(chuàng)建的String對象,它表示一個空字符序列。②String(byte[]bytes):構(gòu)造一個新的String,方法是使用平臺的默認(rèn)字符集解碼字節(jié)的指定數(shù)組。③String(char[]value,intoffset,intcount):分配一個新的String,它包含來自該字符數(shù)組參數(shù)的一個子數(shù)組的字符。2.4字符串與輸入/輸出(2)
String類提供的部分成員方法。①intcompareTo(StringanotherString):按字典順序比較兩個字符串。②intcompareToIgnoreCase(Stringstr):不考慮大小寫,按字典順序比較兩個字符串。③Stringconcat(Stringstr):將指定字符串聯(lián)到此字符串的結(jié)尾。④booleancontains(CharSequences):當(dāng)且僅當(dāng)此字符串包含char值的指定序列時,才返回true。⑤booleanequalsIgnoreCase(StringanotherString):將此String與另一個String進(jìn)行比較,不考慮大小寫。⑥intlength():返回此字符串的長度。⑦StringtoLowerCase():使用默認(rèn)語言環(huán)境的規(guī)則將此String中的所有字符都轉(zhuǎn)換為小寫。⑧StringtoUpperCase():使用默認(rèn)語言環(huán)境的規(guī)則將此String中的所有字符都轉(zhuǎn)換為大寫。⑨StringtoString():返回此對象本身(它已經(jīng)是一個字符串!)。⑩Stringtrim():返回字符串的副本,忽略前導(dǎo)空白和尾部空白。publicclassString_1{publicstaticvoidmain(Stringargs[]) { Stringstra=newString("HELLOJAVA!"); System.out.println(stra); System.out.println("lengthofstrais:"+stra.length()); System.out.println("Lowerofstrais:"+stra.toLowerCase()); }}2.4.2輸入輸出操作1.?dāng)?shù)據(jù)的輸入ScannerScanner是SDK1.5新增的一個類,該類在java.util包中,可以使用該類創(chuàng)建一個對象。Scannerreader=newScanner(System.in);然后借助reader對象可實現(xiàn)讀入各種類型數(shù)據(jù)。讀入方法為:nextInt():讀入一個整型數(shù)據(jù)。nextFloat():讀入一個單精度浮點數(shù)。nextLine():讀入一個字符串。importjava.util.*;publicclassInput_1{
publicstaticvoidmain(String[]args) {intx,y;System.out.print("請輸入兩個整數(shù):");Scannerreader=newScanner(System.in);x=reader.nextInt();y=reader.nextInt();System.
out.print("和為:"+(x+y)); }}2.對話框方式實現(xiàn)輸入和輸出Java通過javax.swing.JOptionPane類可以方便地實現(xiàn)向用戶發(fā)出輸入或輸出消息。JOptionPane類提供了幾個主要的輸入、輸出方法如下。(1)方法showConfirmDialog():用于詢問一個確認(rèn)問題,如yes/no/cancel。(2)方法showInputDialog():用于提示要求某些輸入。(3)方法showMessageDialog():告知用戶某事已發(fā)生。(4)方法showOptionDialog():上述三項的大統(tǒng)一。2.5.1分支語句Java分支語句有兩重分支和多重分支兩種。兩重分支即if-else語句,多重分支即switch語句。1.if-else語句if-else語句的基本語法:if(<布爾表達(dá)式>){<語句塊1>}[else{<語句塊2>}]2.5流程控制語句
if-else的使用舉例。publicclassIfElse{publicstaticvoidmain(Stringargs[]){ doublea=Math.random()*100; System.out.println("a="+a); if(a>50){ System.out.println("a>50!");//輸出a>50 } else{ System.out.println("a<=50!");//輸出a<=50 } }}2.switch語句switch語句的基本語法:switch(<表達(dá)式>){case<常數(shù)1>:<語句塊1>[break;]case<常數(shù)2>:<語句塊2>[break;]……default:<語句塊n>[break;]}switch語句的基本流程如圖2.5.2循環(huán)語句1.for循環(huán)for循環(huán)的語法:for(<初始表達(dá)式>;<條件判斷表達(dá)>;<修改條件表達(dá)式>){<語句或語句塊>;}for循環(huán)的基本流程如圖
用for循環(huán)打印“九九”乘法表。publicclassMath3{publicstaticvoidmain(Stringargs[]){ for(inti=1;i<=9;i++){ for(intj=1;j<=i;j++){ System.out.print(i+"*"+j+"="+i*j+”,”); } System.out.println();//換行 } }}2.while循環(huán)while循環(huán)的語法:<初始表達(dá)式>while(<條件判斷表達(dá)>){<語句或語句塊>;<修改條件表達(dá)式>;}
3.do-while循環(huán)do-while循環(huán)的語法:<初始表達(dá)式>;do{<語句或語句塊>;<修改條件表達(dá)式>;}while(<條件判斷表達(dá)式>);2.5.3跳轉(zhuǎn)語句流程控制語句還有一類為跳轉(zhuǎn)語句,Java語言提供了4個這樣的語句。1.break語句break語句用于從switch語句、循環(huán)語句和標(biāo)記塊中提前退出。2.continue語句continue語句用于跳過并跳到循環(huán)體最后,然后將控制返回到循環(huán)控制語句處。3.標(biāo)記塊語句標(biāo)記塊語句格式為:<label>:<語句>其中l(wèi)abel為標(biāo)簽名,break語句和continue語句可以引用此標(biāo)簽名。4.return語句return語句嚴(yán)格說來不是跳轉(zhuǎn)語句,它是方法的返回語句,它能使程序控制返回到調(diào)用它的方法?!纠刻D(zhuǎn)語句舉例。publicclassMath6{publicstaticvoidmain(Stringargs[]){ Line5: for(inti=1;i<=9;i++){ for(intj=1;j<=9;j++){ if(j>i){System.out.println();continueLine5; }System.out.print(i+"*"+j+"="+i*j+","); } } }}數(shù)組是一種常見的數(shù)據(jù)結(jié)構(gòu),用于存儲一組相同類型的數(shù)據(jù)或變量。2.6.1一維數(shù)組一維數(shù)組是一個序列,圖所示為一個保存學(xué)生姓名的一維數(shù)組存儲結(jié)構(gòu)。
2.6數(shù)組1.一維數(shù)組的聲明一維數(shù)組的聲明有下列幾種方式。(1)數(shù)據(jù)類型數(shù)組名[];例如:StringStudentName[];(2)數(shù)據(jù)類型[]數(shù)組名;例如:String[]StudentName;(3)數(shù)據(jù)類型數(shù)組名[]=new數(shù)據(jù)類型[元素個數(shù)];例如:StringStudentName[]=newString[50];2.一維數(shù)組的初始化一維數(shù)組的初始化有下列幾種方式。(1)創(chuàng)建一維數(shù)組的同時初始化。例如:StringStudentName;StudentName=newString[3];StudentName[0]="Zhangshan";StudentName[1]="Lisi";StudentName[2]="Wangwu";上述方式也可簡化為:StringStudentName[]={"Zhangshan","Lisi","Wangwu"};(2)使用代碼來完成一維數(shù)組的初始化。for(inti=0;i<50;i++){StudentName[i]="ABC";}3.一維數(shù)組的引用一維數(shù)組的引用格式如下。數(shù)組名[下標(biāo)];例如:StudentName[1];StudentName[i];例:使用for循環(huán)輸出一維數(shù)組元素。publicvoidoutputElements(StringStudentName[]){for(inti=0;i<StudentName.length;i++){System.out.println(StudentName[i]);}}
2.6.2多維數(shù)組1.二維數(shù)組的聲明二維數(shù)組的聲明有下列幾種方式。(1)數(shù)據(jù)類型數(shù)組名[][];例如:intSidScore[][];(2)數(shù)據(jù)類型[][]數(shù)組名;例如:int[][]SidScore;(3)數(shù)據(jù)類型數(shù)組名[]=new數(shù)據(jù)類型[元素個數(shù)1][元素個數(shù)2];例如:intSidScore[][]=newint[3][4];2.二維數(shù)組的初始化二維數(shù)組初始化比一維數(shù)組要復(fù)雜些,不過方式與一維的類似。
創(chuàng)建數(shù)組的同時初始化。例如:int[][]SidScore={{1,68,79,90},{2,88,75,60},{3,75,73,85}};3.二維數(shù)組的引用二維數(shù)組的引用格式如下:數(shù)組名[下標(biāo)1][下標(biāo)2];例如:SidScore[1][2];例:使用for循環(huán)輸出二維數(shù)組元素。PublicvoidoutputElements(intSidScore[][]){for(inti=0;i<SidScore.length;i++){for(intj=0;j<arrayName[i].length;j++){System.out.println(SidScore[i][j]);}
}}2.7學(xué)生成績管理實現(xiàn)本節(jié)介紹一個完整的學(xué)生成績管理程序,本程序通過一個二維數(shù)組來保存學(xué)生的成績信息,實現(xiàn)了成績錄入、成績查詢和輸出排名的功能。下面是學(xué)生成績管理程序的完整代碼。importjava.io.*;importjava.util.*;publicclassxscjgl{publicstaticinta=5,b=3;//a保存班級人數(shù)5,b保存課程數(shù)目3publicstaticintscore[][]=newint[a][b+2];staticScannersc=newScanner(System.in);publicstaticvoidmain(Stringargs[])throwsIOException{cjlr();//調(diào)用成績錄入模塊System.out.println("成績查詢----1");System.out.println("成績排序----2");System.out.println("退出程序----0"); System.out.print("請選擇:");ints=sc.nextInt();
switch(s){ case1: cjcx();//調(diào)用成績查詢模塊 break; case2:cjpx();//調(diào)用成績排序模塊 break; default: System.out.println("退出程序OK"); }}//成績錄入模塊publicstaticvoidcjlr()throwsIOException{ inti,j,c,d; for(i=0;i<a;i++){ score[i][0]=i+1;//保存學(xué)號 }
for(i=0;i<a;i++){ d=0; for(j=1;j<=b;j++){System.out.print("請輸入第"+(i+1)+"個學(xué)生的第"+j+"門課的成績"); c=sc.nextInt(); while(c<0||c>100) {System.out.print("請重新輸入第"+(i+1)+"個學(xué)生的第"+j+"門課的成績"); c=sc.nextInt(); } d=d+c; score[i][j]=c;//保存每一門成績 System.out.println(score[i][j]); score[i][b+1]=d;//保存該生總成績 } }}
//按學(xué)號查找模塊publicstaticvoidcjcx()throwsIOException{ inte; System.out.print("請輸入要查找學(xué)生的學(xué)號"); e=sc.nextInt(); while(e<0||e>a) { System.out.print("請重新輸入要查找學(xué)生的學(xué)號"); e=sc.nextInt(); } for(intj=1;j<=b;j++) { System.out.println("學(xué)號為"+e+"的學(xué)生第"+j+"門課的成績:"+score
[e-1][j]);}System.out.println("學(xué)號為"+e+"的學(xué)生總成績:"+score[e-1][b+1]);}//按總分升序排序模塊publicstaticvoidcjpx(){intscoretemp[][]=newint[a][2];//新建一數(shù)組只用于保存總分和學(xué)號for(inti=0;i<a;i++){scoretemp[i][1]=score[i][0];
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 西南民族大學(xué)2026年人才引進(jìn)筆試考試參考試題及答案解析
- 2025重慶水利電力職業(yè)技術(shù)學(xué)院公開招聘合同工筆試考試參考題庫及答案解析
- 技術(shù)部負(fù)責(zé)人招聘須知及考核點
- 物聯(lián)網(wǎng)技術(shù)專家面試問題集
- 上海建工商務(wù)經(jīng)理面試題庫含答案
- 北京市海淀區(qū)成志幼兒園幼兒園教師(外聘) 3名考試筆試模擬試題及答案解析
- 2025四川愛眾樂享醫(yī)養(yǎng)產(chǎn)業(yè)有限公司招聘勞務(wù)外包人員3人筆試考試參考題庫及答案解析
- 2025四川自貢匯東人力資源發(fā)展有限責(zé)任公司招聘人員4人考試筆試模擬試題及答案解析
- 2025廣西河池市天峨縣水果生產(chǎn)服務(wù)中心招聘農(nóng)民技術(shù)員1人筆試考試備考題庫及答案解析
- 2025廣西柳鋼集團(tuán)社會招聘考試筆試參考題庫附答案解析
- 人社局公益性崗位筆試題目及答案
- 2026全國人大機(jī)關(guān)直屬事業(yè)單位招聘50人筆試考試備考題庫及答案解析
- 2026年煙花爆竹經(jīng)營單位主要負(fù)責(zé)人證考試題庫及答案
- 2025秋統(tǒng)編語文八年級上冊14.3《使至塞上》課件(核心素養(yǎng))
- 2025年點石聯(lián)考東北“三省一區(qū)”高三年級12月份聯(lián)合考試英語試題(含答案)
- 礦山隱蔽致災(zāi)因素普查規(guī)范課件
- 2025年《數(shù)據(jù)分析》知識考試題庫及答案解析
- 2025年超星爾雅學(xué)習(xí)通《數(shù)據(jù)分析與統(tǒng)計》考試備考題庫及答案解析
- 寶安區(qū)老虎坑垃圾焚燒發(fā)電廠三期工程環(huán)境影響評價報告
- 設(shè)備安裝用工合同范本
- 湖南省長沙市一中集團(tuán)2025-2026學(xué)年七年級上學(xué)期11月期中聯(lián)考英語試題(含解析無聽力原文及音頻)
評論
0/150
提交評論