Java編程基礎(chǔ)及應(yīng)用第3章運(yùn)算符、表達(dá)式和語(yǔ)句課件_第1頁(yè)
Java編程基礎(chǔ)及應(yīng)用第3章運(yùn)算符、表達(dá)式和語(yǔ)句課件_第2頁(yè)
Java編程基礎(chǔ)及應(yīng)用第3章運(yùn)算符、表達(dá)式和語(yǔ)句課件_第3頁(yè)
Java編程基礎(chǔ)及應(yīng)用第3章運(yùn)算符、表達(dá)式和語(yǔ)句課件_第4頁(yè)
Java編程基礎(chǔ)及應(yīng)用第3章運(yùn)算符、表達(dá)式和語(yǔ)句課件_第5頁(yè)
已閱讀5頁(yè),還剩58頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

Java編程基礎(chǔ)及應(yīng)用第3章運(yùn)算符、表達(dá)式和語(yǔ)句Java編程基礎(chǔ)及應(yīng)用第三章運(yùn)算符、表達(dá)式和語(yǔ)句3.1運(yùn)算符與表達(dá)式的分類(lèi)3.2語(yǔ)句以及基本控制結(jié)構(gòu)3.3

本章小結(jié)第三章運(yùn)算符、表達(dá)式和語(yǔ)句3.1運(yùn)算符與表達(dá)式的分類(lèi)3.1運(yùn)算符的表達(dá)式與分類(lèi)對(duì)數(shù)據(jù)進(jìn)行加工和處理稱為運(yùn)算,表示各種運(yùn)算的符號(hào)稱為運(yùn)算符,參與運(yùn)算的數(shù)據(jù)稱為操作數(shù)。運(yùn)算符和操作數(shù)的數(shù)據(jù)類(lèi)型必須匹配才能進(jìn)行相應(yīng)的運(yùn)算。按照運(yùn)算類(lèi)型,可以將運(yùn)算符分成以下幾類(lèi):算術(shù)運(yùn)算符,關(guān)系運(yùn)算符,條件運(yùn)算符,邏輯運(yùn)算符,賦值運(yùn)算符,其它運(yùn)算符。表達(dá)式是由運(yùn)算符、操作數(shù)和方法調(diào)用按照語(yǔ)言的語(yǔ)法構(gòu)造而成的符號(hào)序列。表達(dá)式可用于一個(gè)公式的計(jì)算,為變量賦值以及控制程序的執(zhí)行流程。3.1運(yùn)算符的表達(dá)式與分類(lèi)對(duì)數(shù)據(jù)進(jìn)行加工和處理稱為運(yùn)算,表3.1.1算術(shù)運(yùn)算符Java語(yǔ)言支持所有的浮點(diǎn)型和整數(shù)型數(shù)據(jù)進(jìn)行各種算術(shù)運(yùn)算。算術(shù)運(yùn)算符用于完成數(shù)學(xué)上的加、減、乘、除四則運(yùn)算。算術(shù)運(yùn)算符包含一元和二元運(yùn)算符兩類(lèi)。二元運(yùn)算符包括+(加)、-(減)、*(乘)、/(除)和%(取余),其中前四個(gè)運(yùn)算符既可以用于整數(shù)型數(shù)據(jù),也可以用于浮點(diǎn)型數(shù)據(jù),而“%”僅用于整數(shù)型數(shù)據(jù),求兩個(gè)操作數(shù)相除后的余數(shù)。3.1.1算術(shù)運(yùn)算符Java語(yǔ)言支持所有的浮點(diǎn)型和整數(shù)型數(shù)3.1.1算術(shù)運(yùn)算符運(yùn)算符用例功能+a+b求a與b之和-a-b求a與b之差*a*b求a與b之積/a/b求a與b之商%a%b求a與b相除的余數(shù)

算術(shù)運(yùn)算符的使用基本上與數(shù)學(xué)中的加減乘除一樣,也是先乘除后加減,必要時(shí)加上括號(hào)表示運(yùn)算的先后順序。二元運(yùn)算符的用法如表3-1。表3-1二元算術(shù)運(yùn)算符3.1.1算術(shù)運(yùn)算符運(yùn)算符用例功能+a+b求a與b之和-a3.1.1算術(shù)運(yùn)算符◆一元運(yùn)算符包括++(自加)、--(自減)、-(負(fù)號(hào))。只能用于整數(shù)類(lèi)型的變量,而不能用于常量或表達(dá)式?!?+”和“--”既可以出現(xiàn)在變量的左邊,也可以出現(xiàn)在變量的右邊?!羟爸眠\(yùn)算:++、--位于操作數(shù)之前,如++x;--x;先改變變量的值后引用。例如:inti=5,j;j=++i;//結(jié)果為i=6,j=6下面我們來(lái)看一段簡(jiǎn)單的代碼。3.1.1算術(shù)運(yùn)算符◆一元運(yùn)算符包括++(自加)、--(3.1.1算術(shù)運(yùn)算符例3.1數(shù)字和字符之間的求和,這需要將字符首先轉(zhuǎn)換為相應(yīng)的ASCLL碼值。程序運(yùn)行結(jié)果:763.1.1算術(shù)運(yùn)算符3.1.2關(guān)系運(yùn)算符關(guān)系運(yùn)算符用于進(jìn)行兩個(gè)操作數(shù)之間的比較運(yùn)算。關(guān)系運(yùn)算符有六種:>(大于)、<(小于)、>=(大于等于)、<=(小于等于)、==(等于)和!=(不等于)。關(guān)系運(yùn)算的結(jié)果是布爾類(lèi)型,即若關(guān)系成立,結(jié)果值為true;否則,結(jié)果值為false。關(guān)系運(yùn)算符的用法如表3-2.結(jié)果為數(shù)值類(lèi)型的變量或表達(dá)式,可以通過(guò)關(guān)系運(yùn)算符形成關(guān)系表達(dá)式。例如:24>8(x+y+z)>6*x3.1.2關(guān)系運(yùn)算符關(guān)系運(yùn)算符用于進(jìn)行兩個(gè)操作數(shù)之間的比較3.1.2關(guān)系運(yùn)算符運(yùn)算符用例功能>a>b如果a>b成立,結(jié)果為true,否則為false<a<b如果a<b成立,結(jié)果為true,否則為false>=a>=b如果a>=b成立,結(jié)果為true,否則為false<=a<=b如果a<=b成立,結(jié)果為true,否則為false==a==b如果a==b成立,結(jié)果為true,否則為false!=a!=b如果a!=b成立,結(jié)果為true,否則為false表3-2關(guān)系運(yùn)算符3.1.2關(guān)系運(yùn)算符運(yùn)算符用例功能>a>b如果a>b成立3.1.3邏輯運(yùn)算符邏輯運(yùn)算符是對(duì)布爾類(lèi)型操作數(shù)進(jìn)行的與、或、非、異或等運(yùn)算,運(yùn)算結(jié)果仍然為布爾類(lèi)型。邏輯運(yùn)算也稱布爾運(yùn)算。(1)邏輯“與”和邏輯“或”邏輯“與”和邏輯“或”運(yùn)算都是二元運(yùn)算符,操作數(shù)是boolean型的變量或求值結(jié)果為boolean型數(shù)據(jù)的表達(dá)式。“&&”的運(yùn)算法則是:當(dāng)兩個(gè)操作元的值都為true時(shí),運(yùn)算結(jié)果為true,否則為false。3.1.3邏輯運(yùn)算符邏輯運(yùn)算符是對(duì)布爾類(lèi)型操作數(shù)進(jìn)行的與、3.1.3邏輯運(yùn)算符“||”的運(yùn)算法則是:當(dāng)兩個(gè)操作元的值都是false時(shí),運(yùn)算結(jié)果是false;否則為true。在判斷組合條件時(shí),經(jīng)常使用“&&”和“||”,因?yàn)椤?&”和“||”具有短路計(jì)算功能。所謂的短路計(jì)算功能是指在組合條件中,從左至右依次判斷條件是否滿足,一旦能夠確定結(jié)果,就立即終止計(jì)算,不再進(jìn)行右邊剩余的操作。3.1.3邏輯運(yùn)算符“||”的運(yùn)算法則是:當(dāng)兩個(gè)操作元的值3.1.3邏輯運(yùn)算符例如:false&&(a>b)//結(jié)果是false(34>21)||(a==b)//結(jié)果是true由于false參與“&&”運(yùn)算,結(jié)果必然是false,就不必再計(jì)算(a>b)的值;同理,(34>21)的值是true,它參與“||”運(yùn)算,結(jié)果必然為true,也不必再計(jì)算后面的(a==b)的值,立即結(jié)束運(yùn)算,提高效率。3.1.3邏輯運(yùn)算符例如:3.1.3邏輯運(yùn)算符(2)邏輯“非”邏輯“非”運(yùn)算的符號(hào)是“!”,是單目運(yùn)算符,操作數(shù)在左邊。當(dāng)操作元的值為true時(shí),運(yùn)算結(jié)果為false;反之為true。結(jié)合性從左至右。(3)邏輯表達(dá)式結(jié)果為boolean型的變量或者表達(dá)式,可以通過(guò)邏輯運(yùn)算符形成邏輯表達(dá)式。例如:22>6&&3<2x!=0||y!=0。3.1.3邏輯運(yùn)算符(2)邏輯“非”3.1.3邏輯運(yùn)算符例3.2下面看一個(gè)小程序:與運(yùn)算中的兩個(gè)操作數(shù)相對(duì)應(yīng)的位置都為1,結(jié)果才為1,否則結(jié)果為0。//And.javapublicclassAnd{ publicstaticvoidmain(String[]args){ inta=128; intb=127; System.out.println("a和b邏輯與的結(jié)果是:"+(a&b)); }}程序運(yùn)行結(jié)果:a和b邏輯與的結(jié)果是:03.1.3邏輯運(yùn)算符例3.2下面看一個(gè)小程序:與運(yùn)算中的3.1.3邏輯運(yùn)算符下面分析這個(gè)程序:“a”的值是128,轉(zhuǎn)換成二進(jìn)制就是10000000,而“b”的值是128,轉(zhuǎn)換成二進(jìn)制就是01111111。根據(jù)與運(yùn)算符的運(yùn)算規(guī)律,只有兩個(gè)位都是1,結(jié)果才是1,可以知道結(jié)果就是00000000,即0。3.1.3邏輯運(yùn)算符3.1.4賦值運(yùn)算符賦值運(yùn)算符:=。賦值運(yùn)算符是雙目運(yùn)算符,左面的操作數(shù)必須是變量,不能是常量或表達(dá)式。賦值運(yùn)算的本質(zhì)是首先計(jì)算右面表達(dá)式的值,再將表達(dá)式的值賦給左邊的變量。注意:不要將賦值運(yùn)算符“=”與等號(hào)運(yùn)算符“==”混淆。賦值運(yùn)算符看起來(lái)是比較簡(jiǎn)單的,但是需要注意“+=”、“-=”、“×=”、“/=”、“%=”都表示一個(gè)符號(hào)。3.1.4賦值運(yùn)算符賦值運(yùn)算符:=。3.1.4賦值運(yùn)算符例3.3試運(yùn)行以下兩個(gè)程序,看看結(jié)果,并找出區(qū)別。你會(huì)發(fā)現(xiàn)Compare1這個(gè)程序出現(xiàn)編譯錯(cuò)誤,因?yàn)閟+1得到的結(jié)果是int型的,需要改為s+=1(如Compare2.java),這樣便不會(huì)報(bào)錯(cuò)。程序運(yùn)行結(jié)果:53.1.4賦值運(yùn)算符例3.3試運(yùn)行以下兩個(gè)程序,看看結(jié)3.1.5移位運(yùn)算符移位運(yùn)算是對(duì)整數(shù)型的操作數(shù)按二進(jìn)制的位進(jìn)行運(yùn)算,運(yùn)算結(jié)果仍然是整數(shù)型數(shù)值,分為左移位操作和右移位操作。(1)左移位運(yùn)算符左移位運(yùn)算符的符號(hào)為“<<”,是二元運(yùn)算符。左移位運(yùn)算符左面的操作元稱為被移位數(shù),右面的操作數(shù)稱為移位量。例如:a<<n運(yùn)算的結(jié)果是通過(guò)將a的所有位都左移n位,每左移一個(gè)位,左邊的高階位上的0或1被移除丟棄,并用0填充右面的低位。3.1.5移位運(yùn)算符移位運(yùn)算是對(duì)整數(shù)型的操作數(shù)按二進(jìn)制的位3.1.5移位運(yùn)算符(2)右移位運(yùn)算符右移位運(yùn)算的符號(hào)為“>>”,是雙目運(yùn)算符。假設(shè)a是一個(gè)被移位的整型數(shù)據(jù),n是移位量。a>>n運(yùn)算的結(jié)果是通過(guò)將a的所有位都右移n位,每右移一位,右面的低階位都被移除丟棄,并用0或1填充左面的高位,a是正數(shù)用0填充,負(fù)數(shù)時(shí)用1填充。正數(shù)不斷右移的最后結(jié)果一定是0,而負(fù)數(shù)不斷右移的最后結(jié)果是-1。3.1.5移位運(yùn)算符(2)右移位運(yùn)算符3.1.6位運(yùn)算符(1)“按位與”運(yùn)算符“&”是雙目運(yùn)算符,對(duì)兩個(gè)整型數(shù)據(jù)a、b按位進(jìn)行與運(yùn)算,運(yùn)算結(jié)果是一個(gè)整型數(shù)據(jù)c。運(yùn)算法則是:如果a、b兩個(gè)數(shù)據(jù)對(duì)應(yīng)位都是1,則c的該位是1,否則是0。例如:1001001和0101001進(jìn)行“與”運(yùn)算,表達(dá)如下,1001001&01010010001001

3.1.6位運(yùn)算符(1)“按位與”運(yùn)算符3.1.6位運(yùn)算符(2)“按位或”運(yùn)算符“|”是雙目運(yùn)算符。對(duì)兩個(gè)整型數(shù)據(jù)a、b按位進(jìn)行或運(yùn)算,運(yùn)算結(jié)果是一個(gè)整型數(shù)據(jù)c。運(yùn)算法則是:如果a、b兩個(gè)數(shù)據(jù)對(duì)應(yīng)位都是0,則c的該位是0,否則為1.例如:1001001和0101001進(jìn)行“或”運(yùn)算,表達(dá)如下,1001001|010100111010013.1.6位運(yùn)算符(2)“按位或”運(yùn)算符3.1.6位運(yùn)算符(3)“按位非”運(yùn)算符“~”是一元運(yùn)算符。對(duì)一個(gè)整型數(shù)據(jù)a按位進(jìn)行非運(yùn)算,運(yùn)算結(jié)果是一個(gè)整型數(shù)據(jù)c。運(yùn)算法則是:如果a對(duì)應(yīng)位是0,則c的該位是1,否則為0。例如:1001001進(jìn)行“非”運(yùn)算表達(dá)如下,1001001~01101103.1.6位運(yùn)算符(3)“按位非”運(yùn)算符3.1.6位運(yùn)算符(4)“按位異或”運(yùn)算符“^”是雙目運(yùn)算符。對(duì)兩個(gè)整型數(shù)據(jù)a、b按位進(jìn)行異或運(yùn)算,運(yùn)算結(jié)果是一個(gè)整型數(shù)據(jù)c。運(yùn)算法則是:如果a、b兩個(gè)數(shù)據(jù)對(duì)應(yīng)位相同,則c的該位是0,否則是1。例如:1001001和0101001進(jìn)行“異或”運(yùn)算,表達(dá)如下,1001001^010100111000003.1.6位運(yùn)算符(4)“按位異或”運(yùn)算符3.1.7條件運(yùn)算符條件運(yùn)算符是一個(gè)多元運(yùn)算符,它的符號(hào)是“?:”,需要連接三個(gè)操作數(shù),用法如下:a?b:c,要求a的值必須為boolean型數(shù)據(jù)。運(yùn)算法則是:當(dāng)a的值為true時(shí),a?b:c運(yùn)算的結(jié)果是b的值;當(dāng)a的值是false時(shí),a?b:c運(yùn)算的結(jié)果是c的值。例如:8>2?10:20的結(jié)果是10;8<2?10:20的結(jié)果是20。3.1.7條件運(yùn)算符條件運(yùn)算符是一個(gè)多元運(yùn)算符,它的符號(hào)是3.1.8表達(dá)式的類(lèi)型表達(dá)式的類(lèi)型由運(yùn)算結(jié)果的數(shù)據(jù)類(lèi)型決定。根據(jù)表達(dá)式的數(shù)據(jù)類(lèi)型,表達(dá)式可以分為3類(lèi):算術(shù)表達(dá)式、布爾表達(dá)式和字符串表達(dá)式。注意:(1)數(shù)據(jù)類(lèi)型之間的轉(zhuǎn)換:當(dāng)一種數(shù)據(jù)類(lèi)型的值賦給另一種數(shù)據(jù)類(lèi)型的變量時(shí),就會(huì)出現(xiàn)數(shù)據(jù)類(lèi)型的轉(zhuǎn)換。3.1.8表達(dá)式的類(lèi)型表達(dá)式的類(lèi)型由運(yùn)算結(jié)果的數(shù)據(jù)類(lèi)型決定3.1.8表達(dá)式的類(lèi)型在整數(shù)型和浮點(diǎn)型數(shù)據(jù)中,可以將數(shù)據(jù)類(lèi)型按照精度從高到底排列,如下:double高級(jí)別floatlongintshortbyte低級(jí)別3.1.8表達(dá)式的類(lèi)型在整數(shù)型和浮點(diǎn)型數(shù)據(jù)中,可以將數(shù)據(jù)類(lèi)3.1.8表達(dá)式的類(lèi)型(2)賦值運(yùn)算中,數(shù)據(jù)類(lèi)型的轉(zhuǎn)換規(guī)則如下:當(dāng)?shù)图?jí)別的值賦給高級(jí)別的變量時(shí),系統(tǒng)自動(dòng)完成數(shù)據(jù)類(lèi)型的轉(zhuǎn)換。例如:floatx=200;//將int類(lèi)型的值200轉(zhuǎn)換為float類(lèi)型值200.0當(dāng)高級(jí)別的值賦給低級(jí)別的變量時(shí),必須進(jìn)行強(qiáng)制類(lèi)型轉(zhuǎn)換。強(qiáng)制類(lèi)型轉(zhuǎn)換形式為:(類(lèi)型標(biāo)示符)待轉(zhuǎn)換的值3.1.8表達(dá)式的類(lèi)型(2)賦值運(yùn)算中,數(shù)據(jù)類(lèi)型的轉(zhuǎn)換規(guī)則3.1.8表達(dá)式的類(lèi)型例如:inti;i=(int)26L;//將long類(lèi)型值26轉(zhuǎn)換成int類(lèi)型值26,結(jié)果i獲得int類(lèi)型值26進(jìn)行強(qiáng)制類(lèi)型轉(zhuǎn)換時(shí),可能會(huì)造成數(shù)據(jù)精度丟失。表達(dá)式中不同類(lèi)型數(shù)據(jù)進(jìn)行運(yùn)算時(shí),類(lèi)型轉(zhuǎn)換規(guī)則與賦值運(yùn)算相似。若雙目運(yùn)算符的兩個(gè)操作數(shù)類(lèi)型不同,系統(tǒng)首先將低級(jí)別的值轉(zhuǎn)換為高級(jí)別的值,再進(jìn)行運(yùn)算。在有些情況下,需要進(jìn)行強(qiáng)制類(lèi)型轉(zhuǎn)換。3.1.8表達(dá)式的類(lèi)型例如:3.1.8表達(dá)式的類(lèi)型例3.4整數(shù)相除,將其結(jié)果強(qiáng)制轉(zhuǎn)換為浮點(diǎn)型。程序運(yùn)行結(jié)果:k=3f1=3.0f2=3.253.1.8表達(dá)式的類(lèi)型例3.4整數(shù)相除,將其結(jié)果強(qiáng)制3.2語(yǔ)句以及基本控制結(jié)構(gòu)◆語(yǔ)句◆基本控制結(jié)構(gòu)3.2語(yǔ)句以及基本控制結(jié)構(gòu)◆語(yǔ)句3.2.1語(yǔ)句語(yǔ)句用來(lái)向計(jì)算機(jī)系統(tǒng)發(fā)出操作指令。程序由一系列語(yǔ)句組成。Java里的語(yǔ)句主要分為5類(lèi):表達(dá)式語(yǔ)句、空語(yǔ)句、復(fù)合語(yǔ)句、方法調(diào)用語(yǔ)句和控制語(yǔ)句。(1)表達(dá)式語(yǔ)句Java語(yǔ)言中最常見(jiàn)的語(yǔ)句就是表達(dá)式語(yǔ)句。表達(dá)式語(yǔ)句的功能是計(jì)算表達(dá)式的值。分號(hào)是語(yǔ)句的分隔符。例如,賦值語(yǔ)句:b=45;3.2.1語(yǔ)句語(yǔ)句用來(lái)向計(jì)算機(jī)系統(tǒng)發(fā)出操作指令。程序由一系3.2.1語(yǔ)句(2)空語(yǔ)句空語(yǔ)句只有分號(hào),沒(méi)有內(nèi)容,不執(zhí)行任何操作。設(shè)計(jì)空語(yǔ)句是為了語(yǔ)法需要,例如,循環(huán)語(yǔ)句的循環(huán)體中如果僅有一條空語(yǔ)句,表示執(zhí)行空循環(huán)。(3)復(fù)合語(yǔ)句可以用“{“和”}”把一些語(yǔ)句包括起來(lái)構(gòu)成復(fù)合語(yǔ)句,一個(gè)復(fù)合語(yǔ)句也稱作一個(gè)代碼塊。例如,{c=a+b;t=c/10;}3.2.1語(yǔ)句(2)空語(yǔ)句3.2.1語(yǔ)句當(dāng)程序中某個(gè)位置在語(yǔ)法上只允許一條語(yǔ)句,而實(shí)際上要執(zhí)行多條語(yǔ)句才能完成某個(gè)操作時(shí),需要將這些語(yǔ)句組合成一條復(fù)合語(yǔ)句。(4)方法調(diào)用語(yǔ)句方法調(diào)用語(yǔ)句由方法調(diào)用加一個(gè)分號(hào)組成。例如:System.out.println(“HelloWorld”);(5)控制語(yǔ)句控制語(yǔ)句完成一定的控制功能,包括條件分支語(yǔ)句、循環(huán)語(yǔ)句和轉(zhuǎn)移語(yǔ)句。3.2.1語(yǔ)句當(dāng)程序中某個(gè)位置在語(yǔ)法上只允許一條語(yǔ)句,而實(shí)3.2.2程序控制結(jié)構(gòu)結(jié)構(gòu)化程序設(shè)計(jì)的基本思想是采用“單入口單出口”的控制結(jié)構(gòu),基本控制結(jié)構(gòu)分為3種:順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。面向過(guò)程程序設(shè)計(jì)和面向?qū)ο蟪绦蛟O(shè)計(jì)是軟件設(shè)計(jì)方法的兩個(gè)重要階段,這兩種程序設(shè)計(jì)思想并不是對(duì)立的,而是繼承和發(fā)展的。其中,作為面向過(guò)程程序設(shè)計(jì)精華的結(jié)構(gòu)化程序設(shè)計(jì)思想仍然是面向?qū)ο蟪毯托蛟O(shè)計(jì)方法的基石。3.2.2程序控制結(jié)構(gòu)結(jié)構(gòu)化程序設(shè)計(jì)的基本思想是采用“單入3.2.2程序控制結(jié)構(gòu)1.順序結(jié)構(gòu)順序結(jié)構(gòu)的程序設(shè)計(jì)是最簡(jiǎn)單的,只要按照需要解決問(wèn)題的順序?qū)懗鱿鄳?yīng)的語(yǔ)句就行,它的執(zhí)行順序是自上而下,依次執(zhí)行。這種結(jié)構(gòu)的特點(diǎn)是:程序從入口點(diǎn)a開(kāi)始,按順序執(zhí)行所有操作,直到出口點(diǎn)b處,所以稱為順序結(jié)構(gòu)。使用順序結(jié)構(gòu)可以獨(dú)立構(gòu)成一個(gè)簡(jiǎn)單的完整程序,常見(jiàn)的輸入、計(jì)算、輸出三步曲的程序就是順序結(jié)構(gòu)。例如計(jì)算圓的面積,其程序的語(yǔ)句順序就是輸入圓的半徑r,計(jì)算s=3.14159*r*r,輸出3.2.2程序控制結(jié)構(gòu)1.順序結(jié)構(gòu)3.2.2程序控制結(jié)構(gòu)圓的面積s。不過(guò)大多數(shù)情況下順序結(jié)構(gòu)都是作為程序的一部分,與其它結(jié)構(gòu)一起構(gòu)成一個(gè)復(fù)雜的程序,例如分支結(jié)構(gòu)中的復(fù)合語(yǔ)句、循環(huán)結(jié)構(gòu)中的循環(huán)體等。順序結(jié)構(gòu)是我們?cè)谠O(shè)計(jì)程序時(shí)最常使用的結(jié)構(gòu)流程,因?yàn)榇_實(shí)有很多程序基本上都是采用這種自上而下的流程來(lái)設(shè)計(jì)的。這種結(jié)構(gòu)的流程圖如圖3-1所示。3.2.2程序控制結(jié)構(gòu)圓的面積s。不過(guò)大多數(shù)情況下順序結(jié)構(gòu)3.2.2程序控制結(jié)構(gòu)開(kāi)始語(yǔ)句1語(yǔ)句2語(yǔ)句n結(jié)束……圖3-1順序結(jié)構(gòu)流程圖3.2.2程序控制結(jié)構(gòu)開(kāi)始語(yǔ)句1語(yǔ)句2語(yǔ)句n結(jié)束……3.2.2程序控制結(jié)構(gòu)2.選擇結(jié)構(gòu)與分支語(yǔ)句程序中有些程序段的執(zhí)行是有條件的,當(dāng)條件成立時(shí),執(zhí)行一些程序段;當(dāng)條件不成立時(shí),執(zhí)行另一些程序段,或者不執(zhí)行。選擇結(jié)構(gòu)表示程序的處理步驟出現(xiàn)了分支,它需要根據(jù)某一特定的條件選擇其中的一個(gè)分支執(zhí)行。選擇語(yǔ)句有兩種:if語(yǔ)句和switch語(yǔ)句。3.2.2程序控制結(jié)構(gòu)2.選擇結(jié)構(gòu)與分支語(yǔ)句3.2.2程序控制結(jié)構(gòu)1)if語(yǔ)句if語(yǔ)句是最常用的選擇語(yǔ)句,其中的條件用布爾表達(dá)式表示。如果布爾表達(dá)式的值為true,表示條件滿足,執(zhí)行某一語(yǔ)句;如果布爾表達(dá)式的值為false,表示條件不滿足,執(zhí)行另一語(yǔ)句。if語(yǔ)句是單分支、二分支或者多分支的語(yǔ)句。if語(yǔ)句的格式如下:if(布爾表達(dá)式)語(yǔ)句1else語(yǔ)句23.2.2程序控制結(jié)構(gòu)1)if語(yǔ)句3.2.2程序控制結(jié)構(gòu)說(shuō)明:(1)如果布爾表達(dá)式的值為true,執(zhí)行語(yǔ)句1;否則執(zhí)行語(yǔ)句2.其中else子句是可選項(xiàng),如果沒(méi)有else子句,在布爾表達(dá)式的值為false時(shí),什么也不執(zhí)行,形成單分支選擇。(2)語(yǔ)句1和語(yǔ)句2可以是一條簡(jiǎn)單語(yǔ)句,也可以是復(fù)合語(yǔ)句或其它構(gòu)造語(yǔ)句。3.2.2程序控制結(jié)構(gòu)說(shuō)明:3.2.2程序控制結(jié)構(gòu)例3.5根據(jù)if語(yǔ)句進(jìn)行判斷,如果a>3,輸出a++,否則輸出a--。程序運(yùn)行結(jié)果:23.2.2程序控制結(jié)構(gòu)例3.5根據(jù)if語(yǔ)句進(jìn)行判斷,如3.2.2程序控制結(jié)構(gòu)2)if語(yǔ)句嵌套程序有時(shí)需要根據(jù)多條件再選擇某一操作,這時(shí)就可以使用if-elseif-else語(yǔ)句。if-elseif-else語(yǔ)句是Java中的一條語(yǔ)句,由一個(gè)“if”、若干個(gè)“else-if”和一個(gè)“else”與若干個(gè)復(fù)合語(yǔ)句按一定規(guī)則構(gòu)成。語(yǔ)句的格式如下:3.2.2程序控制結(jié)構(gòu)2)if語(yǔ)句嵌套3.2.2程序控制結(jié)構(gòu)if(表達(dá)式1){若干語(yǔ)句}elseif(表達(dá)式2){若干語(yǔ)句}……elseif(表達(dá)式n){若干語(yǔ)句}else{若干語(yǔ)句}3.2.2程序控制結(jié)構(gòu)if(表達(dá)式1){3.2.2程序控制結(jié)構(gòu)一條if-elseif-else語(yǔ)句的作用是根據(jù)不同的條件產(chǎn)生不同的操作,執(zhí)行規(guī)則為:if以及elseif后面的括號(hào)內(nèi)的表達(dá)式的值必須是boolean型的。該語(yǔ)句執(zhí)行時(shí),首先計(jì)算if后括號(hào)中的表達(dá)式的值,如果該表達(dá)式的值為true,則執(zhí)行緊跟著的復(fù)合語(yǔ)句,然后就結(jié)束整個(gè)語(yǔ)句的執(zhí)行;如果if后括號(hào)中的表達(dá)式的值為false,就依次再計(jì)算后面的elseif的表達(dá)式的值,直到出現(xiàn)某個(gè)表達(dá)式的值為true為止,然后執(zhí)行該elseif后面的復(fù)合語(yǔ)句,結(jié)束整個(gè)語(yǔ)句的執(zhí)行。如果所有的表達(dá)式的值都是false,就執(zhí)行else后面的復(fù)合語(yǔ)句,結(jié)束整個(gè)語(yǔ)句的執(zhí)行。3.2.2程序控制結(jié)構(gòu)一條if-elseif-else語(yǔ)3.2.2程序控制結(jié)構(gòu)例3.6使用if-else嵌套語(yǔ)句編寫(xiě)程序。程序運(yùn)行結(jié)果:x=5y=53.2.2程序控制結(jié)構(gòu)例3.6使用if-else嵌套語(yǔ)3.2.2程序控制結(jié)構(gòu)3)開(kāi)關(guān)語(yǔ)句當(dāng)要從多個(gè)分支中選擇一個(gè)分支去執(zhí)行時(shí),雖然可以使用嵌套的if語(yǔ)句,但是當(dāng)嵌套層太多時(shí)會(huì)程序的可讀性差。為此,java提供了多分支選擇語(yǔ)句,即switch語(yǔ)句,switch語(yǔ)句能夠根據(jù)給定表達(dá)式的值,從多個(gè)分支中選擇一個(gè)分支來(lái)執(zhí)行。3.2.2程序控制結(jié)構(gòu)3)開(kāi)關(guān)語(yǔ)句3.2.2程序控制結(jié)構(gòu)它的格式如下:switch(表達(dá)式){case常量1:語(yǔ)句序列1;break;case常量2:語(yǔ)句序列2;break;………case常量n:語(yǔ)句序列n;default:語(yǔ)句序列n+1;break;}3.2.2程序控制結(jié)構(gòu)它的格式如下:3.2.2程序控制結(jié)構(gòu)注意:(1)表達(dá)式的數(shù)據(jù)類(lèi)型必須是整型或者字符型。Break語(yǔ)句和default語(yǔ)句是可選項(xiàng)。(2)switch語(yǔ)句首先計(jì)算表達(dá)式的值,如果表達(dá)式的值和某個(gè)case后面的常量值相同,就執(zhí)行該case里的若干個(gè)語(yǔ)句,直到碰到break語(yǔ)句為止。如果某個(gè)case子句中沒(méi)有break語(yǔ)句,一旦表達(dá)式的值與該case后面的常量值相等,在執(zhí)行完該case子句中的語(yǔ)句序列后,繼續(xù)執(zhí)行后續(xù)的case子句中的語(yǔ)句序列,直到遇到break語(yǔ)句為止。如果沒(méi)有一個(gè)常量值與表達(dá)式的值相等,則執(zhí)行default子句中的語(yǔ)句序列;如果沒(méi)有default子句,switch語(yǔ)句不執(zhí)行任何操作。3.2.2程序控制結(jié)構(gòu)注意:3.2.2程序控制結(jié)構(gòu)例3.7通過(guò)命令行輸入1-7之間的一個(gè)整數(shù),輸出相應(yīng)的周一到周日的英文單詞。如果在命令行輸入:1程序運(yùn)行程序,將1傳遞給args[0],則輸出結(jié)果:

Sunday3.2.2程序控制結(jié)構(gòu)例3.7通過(guò)命令行輸入1-7之間3.2.2程序控制結(jié)構(gòu)例3.8根據(jù)系統(tǒng)輸入的數(shù)值,運(yùn)行相應(yīng)的程序代碼。如果在命令行輸入:3程序運(yùn)行程序,將2傳遞給x,則輸出結(jié)果:BlockCn=2result=83.2.2程序控制結(jié)構(gòu)例3.8根據(jù)系統(tǒng)輸入的數(shù)值,運(yùn)行3.2.2程序控制結(jié)構(gòu)3.循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)表示程序反復(fù)執(zhí)行某個(gè)或某些操作,直到某條件為假(或?yàn)檎妫r(shí)才可終止循環(huán)。在循環(huán)結(jié)構(gòu)中最主要的是:什么情況下執(zhí)行循環(huán)?哪些操作需要循環(huán)執(zhí)行?循環(huán)結(jié)構(gòu)的基本形式有兩種:當(dāng)型循環(huán)和直到型循環(huán),而什么情況下執(zhí)行循環(huán)則要根據(jù)條件判斷。Java提供了3種循環(huán)結(jié)構(gòu),包括while語(yǔ)句、do…while語(yǔ)句和for語(yǔ)句。他們的共同點(diǎn)就是根據(jù)給定條件來(lái)判斷是否執(zhí)行指定的程序段(循環(huán)體)。如果滿足執(zhí)行條件,就繼續(xù)執(zhí)行循環(huán)體,否則就不再執(zhí)行循環(huán)體,結(jié)束循環(huán)語(yǔ)句。另外,每種語(yǔ)句都有自己的特點(diǎn)。在實(shí)際應(yīng)用中,應(yīng)該根據(jù)具體問(wèn)題,選擇合適的循環(huán)語(yǔ)句。3.2.2程序控制結(jié)構(gòu)3.循環(huán)結(jié)構(gòu)3.2.2程序控制結(jié)構(gòu)1)while循環(huán)while語(yǔ)句的格式為:while(表達(dá)式){循環(huán)體}while語(yǔ)句由關(guān)鍵字while、括號(hào)中的一個(gè)值為boolean型數(shù)據(jù)的表達(dá)式和一個(gè)復(fù)合語(yǔ)句組成,其中的復(fù)合語(yǔ)句稱作循環(huán)體,循環(huán)體只有一條語(yǔ)句時(shí),大括號(hào)“{}”可以省去,但是最好不要省去,這樣可以增加程序的可讀性。表達(dá)式稱作循環(huán)條件。3.2.2程序控制結(jié)構(gòu)1)while循環(huán)3.2.2程序控制結(jié)構(gòu)while語(yǔ)句的執(zhí)行規(guī)則是:(1)計(jì)算表達(dá)式的值,如果該值為true,就進(jìn)行(2),否則就進(jìn)行(3)。(2)執(zhí)行循環(huán)體,再進(jìn)行(1)(3)結(jié)束while語(yǔ)句的執(zhí)行??梢钥闯鰜?lái)while語(yǔ)句的特點(diǎn)是:先判斷,后執(zhí)行。如果一開(kāi)始,布爾表達(dá)式的值就是false,則循環(huán)體一次也不執(zhí)行,所以while語(yǔ)句的最少執(zhí)行次數(shù)為0。3.2.2程序控制結(jié)構(gòu)while語(yǔ)句的執(zhí)行規(guī)則是:3.2.2程序控制結(jié)構(gòu)例3.9階乘的計(jì)算公式為n!=n*(n-1)*(n-2)*…..*3*2*1,試計(jì)算9!。程序運(yùn)行結(jié)果:9!=362880.0拓展練習(xí):使用for循環(huán)編寫(xiě)9!3.2.2程序控制結(jié)構(gòu)例3.9階乘的計(jì)算公式為n!=n3.2.2程序控制結(jié)構(gòu)2)do…while語(yǔ)句do…while語(yǔ)句的語(yǔ)法如下:do{循環(huán)體}while(表達(dá)式);do…while語(yǔ)句的執(zhí)行規(guī)則是:執(zhí)行循環(huán)體,計(jì)算布爾表達(dá)式的值,若值為true,再執(zhí)行循環(huán)體,形成循環(huán),直到布爾表達(dá)式的值變?yōu)閒alse,結(jié)束循環(huán),執(zhí)行do…while語(yǔ)句的下一條語(yǔ)句??梢钥闯?,do…while循環(huán)語(yǔ)句的特點(diǎn)是先執(zhí)行,后判斷。所以,do…while語(yǔ)句的循環(huán)體至少執(zhí)行一次。3.2.2程序控制結(jié)構(gòu)2)do…while語(yǔ)句3.2.2程序控制結(jié)構(gòu)例3.10使用do-while循環(huán)計(jì)算1+2+3+……+99。程序運(yùn)行結(jié)果:sum=49503.2.2程序控制結(jié)構(gòu)例3.10使用do-while循3.2.2程序控制結(jié)構(gòu)3)for循環(huán)for語(yǔ)句是一種使用比較頻繁的循環(huán)語(yǔ)句,for語(yǔ)句的一般格式為:for(表達(dá)式1;表達(dá)式2;表達(dá)式3){循環(huán)體}注意:(1)表達(dá)式1的作用是給循環(huán)控制變量(以及其他變量)賦初值;表達(dá)式2為布爾類(lèi)型,給出循環(huán)條件;表達(dá)式3給出循環(huán)控制變量的變化規(guī)律,通常是遞增或遞減的。(2)循環(huán)體可以使一條簡(jiǎn)單語(yǔ)句,也可以是復(fù)合語(yǔ)句。3.2.2程序控制結(jié)構(gòu)3

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論