官术网_书友最值得收藏!

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所示。

978-7-111-60245-3-Chapter03-35.jpg

圖3-14 while語句執(zhí)行過程

【例3.8】用while語句計算978-7-111-60245-3-Chapter03-36.jpg,即求累加和:S=1+2+3+4+…+n。

978-7-111-60245-3-Chapter03-37.jpg

流程圖如圖3-15所示,程序運行結(jié)果如圖3-16所示。

978-7-111-60245-3-Chapter03-38.jpg

圖3-15 求累加和流程圖1

978-7-111-60245-3-Chapter03-39.jpg

圖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)格式:

978-7-111-60245-3-Chapter03-40.jpg

說明:

①表達式稱為循環(huán)條件表達式,一般為關(guān)系表達式或邏輯表達式,必須用“()”括起來;

②語句稱為循環(huán)體,可以是單個語句或復合語句;

③do…while語句以分號結(jié)束。

3)執(zhí)行過程:先執(zhí)行語句,然后計算表達式的值,當表達式的值為true時,就重復執(zhí)行語句;直到表達式值為false才結(jié)束循環(huán),如圖3-17所示。

【例3.9】用do…while語句計算978-7-111-60245-3-Chapter03-41.jpg,即求S=1+2+3+4+…+n。

978-7-111-60245-3-Chapter03-42.jpg

圖3-17 直到型循環(huán)結(jié)構(gòu)

978-7-111-60245-3-Chapter03-43.jpg

流程圖如圖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)”。

978-7-111-60245-3-Chapter03-44.jpg

圖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語句等效:

978-7-111-60245-3-Chapter03-45.jpg

978-7-111-60245-3-Chapter03-46.jpg

圖3-19 for語句執(zhí)行過程1

【例3.10】用for語句計算978-7-111-60245-3-Chapter03-47.jpg

978-7-111-60245-3-Chapter03-48.jpg

流程圖如圖3-21所示,運行結(jié)果如圖3-16所示。

978-7-111-60245-3-Chapter03-49.jpg

圖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)變量賦初值。例如:

978-7-111-60245-3-Chapter03-50.jpg

③若表達式2省略,則不判斷循環(huán)條件,循環(huán)無終止地進行下去,形成“死循環(huán)”,即認為表達式2始終為真,因此表達式2通常不能省略。

④若表達式3省略,則在循環(huán)體中應有能不斷修改循環(huán)條件的語句。例如:

978-7-111-60245-3-Chapter03-51.jpg

⑤若省略表達式1和表達式3,只有表達式2,即只給出循環(huán)條件。例如:

978-7-111-60245-3-Chapter03-52.jpg

此時,for語句和while語句完全相同。上述語句相當于:

978-7-111-60245-3-Chapter03-53.jpg

⑥表達式1和表達式3可以是一個簡單的表達式,也可以是其他表達式,當然可以是逗號表達式,即用逗號“,”隔開的多個簡單表達式,它們的運算順序是從左到右順序進行。

for(sum=0,i=1;i<=n;i++)

sum += i;

由此可見,用for語句比用while語句書寫更簡潔。

【例3.11】計算978-7-111-60245-3-Chapter03-54.jpg,即求:978-7-111-60245-3-Chapter03-55.jpg

分析:求解該題仍采用求累加和的思想,即用循環(huán)語句將級數(shù)中各項值:t=1.0/(i*(i+1))依次加入累加和sum中。程序如下:

978-7-111-60245-3-Chapter03-56.jpg

程序執(zhí)行后輸出:

和是:0.9523809523809522

主站蜘蛛池模板: 巴里| 玉环县| 安达市| 石棉县| 鹤岗市| 深州市| 新竹市| 恩平市| 郸城县| 绥化市| 蓬安县| 仙居县| 乐山市| 道真| 潼南县| 临猗县| 尉犁县| 朝阳县| 望谟县| 炉霍县| 廊坊市| 长兴县| 资源县| 延长县| 霍林郭勒市| 钟山县| 交城县| 宁安市| 长岛县| 儋州市| 黔西县| 昂仁县| 米泉市| 黄陵县| 太湖县| 灌南县| 衢州市| 大庆市| 和平区| 基隆市| 衡东县|