- Java程序設(shè)計案例教程
- 許敏 史熒中
- 1854字
- 2020-08-07 16:35:20
3.4 循環(huán)語句
循環(huán)結(jié)構(gòu)用于反復執(zhí)行一個語句塊,直到滿足終止循環(huán)的條件時為止。一個循環(huán)一般包含3部分內(nèi)容。
1)初始化部分:設(shè)置初始條件,一般只執(zhí)行一次。
2)終止部分:設(shè)置終止條件,它應該是一個布爾表達式,每次循環(huán)都要求值一次,用以判斷是否滿足終止條件。
3)循環(huán)體部分:被反復執(zhí)行的語句塊。
Java語言提供4種循環(huán)結(jié)構(gòu):當型循環(huán)、直到型循環(huán)、for循環(huán)和foreach循環(huán)。
3.4.1 while語句
1)作用:實現(xiàn)“當型”循環(huán)結(jié)構(gòu)。
2)格式:while (<表達式>)
語句
說明:
①表達式稱為循環(huán)條件表達式,一般為關(guān)系表達式或邏輯表達式,必須用“()”括起來;
②語句稱為循環(huán)體,可以是單個或復合語句。
3)執(zhí)行過程:先計算表達式的值,當表達式的值為true時,重復執(zhí)行指定的語句;當表達式的值為false時,結(jié)束循環(huán),如圖3-14所示。
圖3-14 while語句執(zhí)行過程
【例3.8】用while語句計算,即求累加和:S=1+2+3+4+…+n。
流程圖如圖3-15所示,程序運行結(jié)果如圖3-16所示。
圖3-15 求累加和流程圖1
圖3-16 求累加和運行結(jié)果
說明:
①while語句是先判斷表達式i≤n是否成立,若條件成立,則將sum加i后賦給sum及i增加1;若條件不成立,則不執(zhí)行相應語句,退出循環(huán)。
②當表達式的值一開始不成立,語句一次也不執(zhí)行。如當輸入n為0時,i≤n不成立,語句sum=sum+i;和i++;一次也不執(zhí)行。
③在循環(huán)體中應有能不斷修改循環(huán)條件的語句,最終能使循環(huán)結(jié)束,否則會形成“死循環(huán)”。如i++;語句,使i不斷加1,直到大于n為止。
3.4.2 do…while語句
1)作用:實現(xiàn)“直到型”循環(huán)結(jié)構(gòu)。
2)格式:
說明:
①表達式稱為循環(huán)條件表達式,一般為關(guān)系表達式或邏輯表達式,必須用“()”括起來;
②語句稱為循環(huán)體,可以是單個語句或復合語句;
③do…while語句以分號結(jié)束。
3)執(zhí)行過程:先執(zhí)行語句,然后計算表達式的值,當表達式的值為true時,就重復執(zhí)行語句;直到表達式值為false才結(jié)束循環(huán),如圖3-17所示。
【例3.9】用do…while語句計算,即求S=1+2+3+4+…+n。
圖3-17 直到型循環(huán)結(jié)構(gòu)
流程圖如圖3-18所示,程序運行結(jié)果如圖3-16所示。
說明:
①do…while語句是先執(zhí)行sum=sum+i;和i++;語句,后判斷表達式i≤n是否成立。若條件成立,則繼續(xù)執(zhí)行循環(huán)體;若條件不成立,則不執(zhí)行相應語句,退出循環(huán)。
②即使表達式的值一開始就不成立,語句仍要執(zhí)行一次。如當輸入n為0時,i≤n不成立,但語句sum=sum+i;和i++;也要執(zhí)行一次。
③在循環(huán)體中應有能不斷修改循環(huán)條件的語句,最終能使循環(huán)結(jié)束,否則會形成“死循環(huán)”。
圖3-18 求累加和流程圖2
3.4.3 for語句
1.for語句格式
for (<表達式1>;<表達式2>;<表達式3>)
<語句>
說明:
①表達式1稱為循環(huán)初始化表達式,通常為賦值表達式,簡單情況下為循環(huán)變量賦初值。
②表達式2稱為循環(huán)條件表達式,通常為關(guān)系表達式或邏輯表達式,簡單情況下為循環(huán)結(jié)束條件。
③表達式3稱為循環(huán)增量表達式,通常為賦值表達式,簡單情況下為循環(huán)變量增量。
④語句部分為循環(huán)體,它可以是單個或復合語句。
2.for語句的執(zhí)行過程
1)計算表達式1的值。
2)計算表達式2的值,若表達式2的值為“真”時,則轉(zhuǎn)到(3);若表達式2的值為“假”時,則結(jié)束循環(huán)。
3)執(zhí)行循環(huán)體語句。
4)計算表達式3的值,返回(2)繼續(xù)執(zhí)行。
for語句的執(zhí)行過程如圖3-19與圖3-20所示。
for語句可以和下列while語句等效:
圖3-19 for語句執(zhí)行過程1
【例3.10】用for語句計算。
流程圖如圖3-21所示,運行結(jié)果如圖3-16所示。
圖3-21 求累加和流程圖3
在上例中,表達式1:i=1完成對循環(huán)變量i的初始化賦值工作,使i的初值為1;表達式2:i<=n判斷循環(huán)變量i的值是否小于或等于n,若不成立則結(jié)束循環(huán),若成立則執(zhí)行sum=sum+i;語句;再執(zhí)行表達式3:i++,使用循環(huán)變量i加1,轉(zhuǎn)表達式2繼續(xù)判斷i<=n是否成立。
說明:
①for語句中的3個表達式都可省略,但其中的兩個分號不能省略。
②若表達式1省略,則應在for語句之前給循環(huán)變量賦初值。例如:
③若表達式2省略,則不判斷循環(huán)條件,循環(huán)無終止地進行下去,形成“死循環(huán)”,即認為表達式2始終為真,因此表達式2通常不能省略。
④若表達式3省略,則在循環(huán)體中應有能不斷修改循環(huán)條件的語句。例如:
⑤若省略表達式1和表達式3,只有表達式2,即只給出循環(huán)條件。例如:
此時,for語句和while語句完全相同。上述語句相當于:
⑥表達式1和表達式3可以是一個簡單的表達式,也可以是其他表達式,當然可以是逗號表達式,即用逗號“,”隔開的多個簡單表達式,它們的運算順序是從左到右順序進行。
for(sum=0,i=1;i<=n;i++)
sum += i;
由此可見,用for語句比用while語句書寫更簡潔。
【例3.11】計算,即求:
。
分析:求解該題仍采用求累加和的思想,即用循環(huán)語句將級數(shù)中各項值:t=1.0/(i*(i+1))依次加入累加和sum中。程序如下:
程序執(zhí)行后輸出:
和是:0.9523809523809522
- 數(shù)據(jù)庫程序員面試筆試真題與解析
- Boost C++ Application Development Cookbook(Second Edition)
- Ceph Cookbook
- Banana Pi Cookbook
- C語言程序設(shè)計
- RabbitMQ Essentials
- Microsoft Dynamics AX 2012 R3 Financial Management
- Swift 4從零到精通iOS開發(fā)
- 計算機應用基礎(chǔ)項目化教程
- 微信小程序開發(fā)實戰(zhàn):設(shè)計·運營·變現(xiàn)(圖解案例版)
- 平面設(shè)計經(jīng)典案例教程:CorelDRAW X6
- CodeIgniter Web Application Blueprints
- 算法圖解
- 進入IT企業(yè)必讀的324個Java面試題
- Mastering Apache Camel