版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第三章Java面向過程編程3.1Java的順序結構3.2Java的分支結構3.3循環(huán)結構3.4結構嵌套3.5函數(shù)本章小結
3.1Java的順序結構
面向過程編程中,我們采用結構化的方式進行編程,每個結構具有一個入口和一個出口,按照解決問題的步驟一個一個結構順序地執(zhí)行,直到程序結束。這些結構內部包括各種基本語句,比如定義變量、變量賦值、分支、循環(huán)、輸入/輸出等,或者包括這些語句的嵌套。
相對于分支結構和循環(huán)結構,順序結構主要是指定義變量、變量賦值、表達式運算、輸入/輸出等語句。這里用一個C語言的程序示例來說明。該程序的功能是求兩個正整數(shù)的最大公約數(shù)。過程描述:從鍵盤輸入2個整數(shù),判斷是否為正數(shù),如果否,則結束函數(shù),返回0;如果都為正數(shù),則使用循環(huán)結構來求兩個數(shù)的最大公約數(shù),最后輸出結果。
★與C語言的比較:
(1)?C語言的變量定義都要在程序開始處,而Java可以在程序需要的地方定義變量。
(2)?C語言的輸入/輸出使用scanf()和printf(),而Java的輸入使用Scanner類對象及相應的成員函數(shù)進行,輸出使用System.out.println()。
(3)?C語言的main函數(shù)使用return語句來結束函數(shù)運行,而Java使用“System.exit(0);”語句來終止程序。
程序結果:
3.2Java的分支結構分支結構主要有單分支、雙分支和多分支三種結構,程序運行到該結構時根據(jù)分支條件來判斷走哪條“路”:(1)單分支:分支條件成立,執(zhí)行分支語句,否則不執(zhí)行。(2)雙分支:分支條件成立,執(zhí)行第一條分支語句,否則執(zhí)行第二條分支語句。(3)多分支:從第一個分支條件開始自上向下判斷分支條件,哪個分支條件成立就執(zhí)行哪條分支語句,然后退出整個多分支結構。
3.2.1if語句
if語句的三種結構形式如下:
(1)單分支結構:
(2)雙分支結構:
(3)多分支結構:
下面以雙分支的if-else結構為例進行說明,圖3-1是雙分支結構的流程圖,程序從a進入到該結構碰到分支條件,當條件為真時執(zhí)行S2語句(或語句塊),條件為假時執(zhí)行S1語句(或語句塊),不管執(zhí)行哪條語句,都要從b出口退出該分支結構。簡單來說就是條件為真走S2這條“路”,條件為假走S1這條“路”,S1和S2這兩條路,只能選擇一條。圖3-1選擇結構
分支條件說明:
(1)條件可以由關系表達式、邏輯表達式或布爾邏輯變量等構成。
(2)關系表達式是由==、!=、<、>、>=、<=等這些關系運算符連接起來的運算式。
(3)邏輯表達式是由邏輯非(!)、邏輯與(&&)、邏輯或(||)三個邏輯運算符連接起來的運算式。
各運算符的優(yōu)先級別為:
!>算術運算符>關系運算符>&&>||>賦值運算符
(4)?&&?和?||?運算符的結合性是從左到右。
(表達式1)&&(表達式2)若表達式1為假,則表達式2不會被運行
(表達式1)||(表達式2)若表達式1為真,則表達式2不會被運行
(5)?0<x<10在數(shù)學中表示x大于0且小于10,但是在程序中表達這個條件時應該寫為
x>0&&x<10
程序結果:
(3)不管使用哪種分支結構,程序的邏輯要正確,不要有漏洞。if只能管制一條語句,可以使用花括號將多條語句構成一個{語句塊}歸屬if管制,if和else后面固定使用{}包圍分支語句(不管是一條還是多條)是一個良好的編程習慣。
3.2.2switch語句
Java與C語言一樣可以使用switch的多分支結構,switch語句的一般形式如下:
switch語法說明:
(1)?switch語句中的表達式類型只能是byte、short、int、char和枚舉等類型,在JDK1.7后可以有string表達式類型。
(2)?case后面的值1、值2、…、值n必須是整型、字符型常量以及字符串,各個case后面的常量值不能相同。
(3)?switch語句的主要流程是把表達式的值依次與各個case子句中的值比較,如果值相等,表示匹配成功,找到對應的分支,執(zhí)行該case后面的子句。
(4)可以把switch后面的表達式看成選路的依據(jù),case后面的值是分支路徑的路標,如果表達式的值與路標相同,表示找到了分支路徑,開始執(zhí)行該路徑下的語句。
(5)一般在每條分支最后都有break語句,作用是執(zhí)行完一個case分支后,使程序跳出switch語句,不再執(zhí)行其它語句;如果某個子句后不使用break語句,則繼續(xù)向下執(zhí)行后面的語句,直至碰到下一個break或運行到switch的右花括號結束。
(6)關于default語句,當switch表達式的值與所有case語句中的值都不匹配時,就會找到default,開始執(zhí)行default分支的語句。
程序結果:
3.3循環(huán)結構
循環(huán)結構示意圖如圖3-2所示,當滿足循環(huán)條件時就執(zhí)行循環(huán)語句,執(zhí)行完循環(huán)語句后,再進行條件判斷,如果條件還為真,則繼續(xù)執(zhí)行循環(huán)語句,直到條件為假時退出循環(huán)體。
圖3-2循環(huán)結構
3.3.1while循環(huán)結構
while循環(huán)結構,又稱為當型循環(huán):當條件成立時,進入循環(huán)體;當條件不成立時,退出循環(huán)體。當型結構如圖3-2所示,一般結構形式如下:
程序結果:
3.3.2for循環(huán)結構
如果清楚知道循環(huán)次數(shù),或者循環(huán)的步進變化很明確,這時使用for循環(huán)更為方便。從for循環(huán)的頭部就能很直觀地讀出循環(huán)的次數(shù),其結構形式如下:
for循環(huán)的結構如圖3-3所示。圖3-3for循環(huán)結構
程序結果:
3.3.3循環(huán)控制語句
break語句:“break;”如果在循環(huán)體中被執(zhí)行,則退出整個循環(huán)結構;在多層嵌套循環(huán)中被執(zhí)行,則只能跳出本層循環(huán)結構。
continue語句:“continue;”如果在循環(huán)體中被執(zhí)行,表示本次循環(huán)結束,進入下一次循環(huán)。
break語句和continue語句在循環(huán)體中出現(xiàn)時一般都需要放入一個if分支結構中,即在某個條件成立時,break語句用于退出所在循環(huán),continue語句則結束本次循環(huán)而繼續(xù)下一次循環(huán)。
3.4結構嵌套結構嵌套主要指的是順序結構、分支結構和循環(huán)結構語句相互嵌套,比如在循環(huán)結構中有循環(huán)結構,循環(huán)結構中有分支結構,分支結構中有循環(huán)結構等,如何正確地完成這些結構的嵌套呢?這需要根據(jù)解決問題的算法來進行,在編程之前需要對問題進行解讀,對算法進行分解,分解的步驟邏輯要正確,思路要清晰,從而才能規(guī)劃好程序的結構,有條不紊地進行編程。分解好算法步驟之后要用正確的語法來實現(xiàn)這些步驟,并通過運行、調試解決程序中出現(xiàn)的問題,直到得到正確的程序。
程序示例3-8從鍵盤輸入一個正整數(shù)n(n>2),求小于n的所有素數(shù)之和。
如圖3-4所示,對這個問題進行算法分解,將程序分為兩個主要結構:1是如何判斷一個數(shù)是否為素數(shù),2是一個循環(huán)結構,對2~n-1所有的數(shù)依次進行判斷。首先要能完成1結構,然后將1結構嵌入到2循環(huán)結構中。下面我們將依次完成這個程序。圖3-4結構嵌套
(2)求小于n的所有素數(shù)之和(結構2)
將上述程序段1嵌入到2~n-1循環(huán)中,重新分配變量?,F(xiàn)在是對2~n-1中的每個數(shù)i進行判斷,如果是素數(shù)則加入到sum中,否則循環(huán)繼續(xù)。
程序結果:
3.5函數(shù)
3.5.1函數(shù)的定義與調用在面向過程編程中,函數(shù)是非常重要的。如何定義和調用函數(shù),對于C語言和Java都是必須掌握的重要知識點。函數(shù)定義時要注意的三個要素(圖3-5):(1)函數(shù)參數(shù):調用該函數(shù)時要傳入什么數(shù)據(jù)。(2)函數(shù)返回值類型:函數(shù)調用結束,返回一個什么類型的數(shù)據(jù)。(3)函數(shù)體:代表了該函數(shù)要完成的任務或提供的功能。
圖3-5函數(shù)三要素
可以將上一節(jié)判斷一個數(shù)是否為素數(shù)的結構1程序,寫成一個函數(shù)isPrime,聲明為
publicstaticbooleanisPrime(intn)
說明:
(1)?main函數(shù)如果要直接調用該函數(shù),該函數(shù)也需要static修飾。
(2)該函數(shù)傳入一個正整數(shù)n,用于判斷該n是否為素數(shù)。
(3)該函數(shù)返回值為布爾類型,返回true則表示n是素數(shù),返回false則表示n不是素數(shù)。
(4)函數(shù)體功能如函數(shù)名isPrime所示,用以判斷某個數(shù)是否為素數(shù)。
程序結果:
3.5.2Java函數(shù)與幫助文檔
1.?Java編程接口
應用程序編程接口(ApplicationProgrammingInterface,API)是一組預定義函數(shù)總和,目的是提供應用程序,以方便開發(fā)人員訪問這些函數(shù)的聲明和功能,而無需訪問源碼或理解內部工作機制的細節(jié)。Java具有一個很龐大的API,Java程序員能夠使用這些函數(shù)來構建自己的程序,減輕工作量。
打開JDK1.6API幫助文檔,如圖3-6所示。
圖3-6JDK幫助文檔
2.包和類的概念
Java的基本程序組織單位是類,類中可以有多個函數(shù)(成員方法)。由于Java編程面向各個領域,預定義的類非常多,JDK1.6版本大概有3700多個類。為了方便管理這么多類,這些類被分類放在不同的包中,包就是文件夾。比如java.io包,就是java/io文件夾,其中有與Java輸入/輸出相關的類80多個,如File文件類、FileReader文件輸入類、FileWriter文件輸出類、BufferedReader帶緩沖的輸入類、BufferedWriter帶緩沖的輸出類等等,這些類中有很多成員函數(shù),提供了相應的函數(shù)功能供程序員使用。
點擊圖3-6的“顯示”按鈕,可以展開“索引”和“搜索”選項卡,其中用的比較多的是“索引”,在“索引”中輸入想要查詢的類名,找到類才能找到想要找的函數(shù),如圖3-7所示。
圖3-7JDK幫助文檔索引
3.幫助文檔的使用
以字符串類String為例(該類在后面要詳細說明),輸入String后點擊進入,可以看到對String類的描述,如圖3-8所示。圖3-8查詢String類
雙擊左邊的String,右邊出現(xiàn)String類的具體描述,向下拉動右邊的滾動條,可以看到對字符串處理的函數(shù)說明在“方法摘要”里,如圖3-9所示。
圖3-9查詢String類的函數(shù)
點擊第一個函數(shù)鏈接,可以進一步看到該函數(shù)的詳細說明,如圖3-10所示。圖3-10charAt函數(shù)說明
API中的兩種函數(shù)為對象成員函數(shù)和類成員函數(shù)。
(1)對象成員函數(shù)。上述第一個函數(shù)charAt就是對象成員函數(shù),即首先由String類產生字符串對象,再由對象來調用的函數(shù)。
charAt函數(shù)使用時需要傳入一個整數(shù),表示字符串的下標索引,某個字符串對象調用該函數(shù),能夠將該字符串對象指定下標索引處的字符返回,如charc="abcdef".charAt(3)返回字符'd'。(注:字符串下標從0開始計數(shù),字符串常量也是一個字符串對象。)
"abcdef"是一個字符串對象,該對象采用成員運算符(.)調用charAt函數(shù),找到第四個字符返回,所以該函數(shù)的調用返回字符?'d'?賦值給c變量。
我們可以看到圖3-9中charAt后面的函數(shù)全是對象成員函數(shù),直到最后一個copyValueOf函數(shù)。
(2)類成員函數(shù)。圖3-9的最后一個函數(shù)copyValueOf和上面函數(shù)的不同之處在于它有一個static靜態(tài)修飾符,如圖3-11所示,這種帶static修飾符的函數(shù)稱為類成員函數(shù)。調用該函數(shù)可以不用產生對象,直接由類名調用:
Strings=String.copyValueOf(ch);
上述語句表示,調用字符串類的copyValueOf函數(shù),將字符數(shù)組ch中的所有字符構造成為一個字符串對象返回給s對象。圖3-11copyValueOf函數(shù)說明
從上述兩個函數(shù)的查詢可以看出,要使用Java預定義的函數(shù),首先要找到類,類中的函數(shù)分為對象成員函數(shù)和類成員函數(shù),對象成員函數(shù)的使用必須要先產生對象,由對象來調用函數(shù),而類成員函數(shù)可以使用類名,也可以使用對象名來調用。
查詢幫助文檔,使用Java的預定義函數(shù)來幫助構建程序,使得Java編程者更多關注如何解決問題和如何構建程序,而屏蔽了一些具體函數(shù)的編寫,這樣大大減輕了Java程序員的工作量,也是Java和C語言編程方式的一個不同之處。
本章小結
1.Java面向過程編程源于C語言,同樣是結構化的編程,具有順序、分支和循環(huán)三種結構。2.順序結構是面向過程
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度車輛抵押借款合同(含違約責任)4篇
- 2025年環(huán)保產業(yè)授權簽訂合同委托書范本3篇
- 2025年度綠化工程后期維護與管理合同4篇
- 2025版體育賽事贊助與合作協(xié)議4篇
- 2025版停車場安全監(jiān)控與服務保障合同2篇
- 二零二五版電子商務平臺智能客服系統(tǒng)采購合同3篇
- 鄭州電力高等??茖W?!峨娨暰庉嬎囆g》2023-2024學年第一學期期末試卷
- 2025年度餐飲企業(yè)員工培訓及服務合同6篇
- 2025版醫(yī)療設備運維托管正規(guī)范合同3篇
- 個人網(wǎng)絡店鋪租賃合同(2024版)6篇
- 電纜擠塑操作手冊
- 浙江寧波鄞州區(qū)市級名校2025屆中考生物全真模擬試卷含解析
- IATF16949基礎知識培訓教材
- 【MOOC】大學生創(chuàng)新創(chuàng)業(yè)知能訓練與指導-西北農林科技大學 中國大學慕課MOOC答案
- 勞務派遣公司員工考核方案
- 基礎生態(tài)學-7種內種間關系
- 2024年光伏農田出租合同范本
- 《阻燃材料與技術》課件 第3講 阻燃基本理論
- 2024-2030年中國黃鱔市市場供需現(xiàn)狀與營銷渠道分析報告
- 招標監(jiān)督報告
- 項目立項申請書
評論
0/150
提交評論