Java中的for循環(huán)——通過示例學(xué)習(xí)Java編程(9)

作者:CHAITANYA SINGH

來源:Java的for循環(huán)

循環(huán)用于反復(fù)執(zhí)行同一組語句,直到滿足特定條件為止。在Java中,我們有三種類型的基本循環(huán):for、while和do-while。在本教程中,我們將學(xué)習(xí)如何在Java中使用for循環(huán)(for loop)。

for循環(huán)的語法:

for(初始化initialization;?循環(huán)條件condition;?遞增/遞減increment/decrement)

{

???statement(s);

}

for循環(huán)的執(zhí)行流程

當(dāng)程序在運(yùn)行的時(shí)候,解釋器一直在跟蹤要執(zhí)行的語句,我們稱之為控制流,或者程序的執(zhí)行流程。

第一步:在for循環(huán)中,首先進(jìn)行初始化,在整個(gè)for循環(huán)中,初始化部分的語句只在開始的時(shí)候執(zhí)行一次。

第二步:在每次迭代時(shí)評(píng)估for循環(huán)中的條件,如果條件為true(真)則執(zhí)行循環(huán)體內(nèi)的語句。一旦條件返回false(假),for循環(huán)中的語句就不會(huì)執(zhí)行,程序就跳到for循環(huán)外面的語句上運(yùn)行。

第三步:每次執(zhí)行for循環(huán)體后,程序回頭執(zhí)行for循環(huán)的遞增/遞減部分,更新循環(huán)計(jì)數(shù)器。

第四步:第三步后,程序跳轉(zhuǎn)到第二步,重新評(píng)估循環(huán)條件,決定是繼續(xù)執(zhí)行在for循環(huán)內(nèi)部的語句還是跳出for循環(huán)執(zhí)行后面的語句。

簡單for循環(huán)示例

classForLoopExample?{

????publicstaticvoidmain(String?args[]){

?????????for(inti=10;?i>1;?i--){

??????????????System.out.println("The?value?of?i?is:?"+i);

?????????}

????}

}

輸出:

The?value?of?i?is:?10

The?value?of?i?is:?9

The?value?of?i?is:?8

The?value?of?i?is:?7

The?value?of?i?is:?6

The?value?of?i?is:?5

The?value?of?i?is:?4

The?value?of?i?is:?3

The?value?of?i?is:?2

在上面的程序中:

int i = 1是初始化表達(dá)式;i > 1是否繼續(xù)循環(huán)的條件(布爾表達(dá)式,滿足條件就繼續(xù)循環(huán),不滿足條件就跳出循環(huán));i-是遞減操作

死循環(huán)

循環(huán)條件的布爾表達(dá)式和遞增/遞減運(yùn)算之間的互相協(xié)調(diào)非常重要,現(xiàn)在讓我們來看看下面這個(gè)例子:

classForLoopExample2?{

????publicstaticvoidmain(String?args[]){

?????????for(inti=1;?i>=1;?i++){

??????????????System.out.println("The?value?of?i?is:?"+i);

?????????}

????}

}

這是一個(gè)死循環(huán),我們初始化里給變量i賦值為1,循環(huán)條件是i>=1,因?yàn)閕的值是1,后面的遞增運(yùn)算i++只能讓變量i的值越來越大,所以這個(gè)循環(huán)條件i>=1永遠(yuǎn)都不會(huì)返回false。這最終會(huì)導(dǎo)致死循環(huán)條件。因此可見,增量/遞減操作的結(jié)果必須是能確保在某個(gè)時(shí)間點(diǎn)上,循環(huán)條件的返回值為false,這樣程序才可以跳出這個(gè)for循環(huán)。

下面是另一個(gè)for循環(huán)的死循環(huán)的例子:

//?infinite?loop

for(?;?;?)?{

????//?statement(s)

}

用for循環(huán)遍歷數(shù)組(array)的例子:

在這里,我們使用for循環(huán)遍歷和顯示數(shù)組里面的每個(gè)元素。

classForLoopExample3?{

????publicstaticvoidmain(String?args[]){

?????????intarr[]={2,11,45,9};

?????????//i?starts?with?0?as?array?index?starts?with?0?too

?????????for(inti=0;?i<arr.length;?i++){

??????????????System.out.println(arr[i]);

?????????}

????}

}

輸出:

2

11

45

9

增強(qiáng)型for循環(huán)

當(dāng)您想要遍歷數(shù)組/集合里面的每個(gè)元素時(shí),增強(qiáng)型的for循環(huán)很有用,非常易于編寫和理解。

讓我們采用上面編寫的相同示例,并使用增強(qiáng)型for循環(huán)來重寫它。

classForLoopExample3?{

???publicstaticvoidmain(String?args[]){

??????intarr[]={2,11,45,9};

??????for(intnum?:?arr)?{

?????????System.out.println(num);

??????}

???}

}

輸出:

2

11

45

9

注:在上面的示例中,我在增強(qiáng)型的for循環(huán)中將變量num的數(shù)據(jù)類型聲明為int(整數(shù)型)。我們將根據(jù)數(shù)組的數(shù)據(jù)類型來決定如何聲明這個(gè)變量的數(shù)據(jù)類型。例如,String類型的增強(qiáng)型for循環(huán)需要將這個(gè)變量聲明為String,如下所示:

String?arr[]={"hi","hello","bye"};

for(String?str?:?arr)?{

?????????System.out.println(str);

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 【程序1】 題目:古典問題:有一對(duì)兔子,從出生后第3個(gè)月起每個(gè)月都生一對(duì)兔子,小兔子長到第三個(gè)月后每個(gè)月又生一對(duì)兔...
    開心的鑼鼓閱讀 3,393評(píng)論 0 9
  • 第四天 數(shù)組【悟空教程】 第04天 Java基礎(chǔ) 第1章數(shù)組 1.1數(shù)組概念 軟件的基本功能是處理數(shù)據(jù),而在處理數(shù)...
    Java幫幫閱讀 1,676評(píng)論 0 9
  • Java經(jīng)典問題算法大全 /*【程序1】 題目:古典問題:有一對(duì)兔子,從出生后第3個(gè)月起每個(gè)月都生一對(duì)兔子,小兔子...
    趙宇_阿特奇閱讀 2,070評(píng)論 0 2
  • DAY 05 1、 public classArrayDemo { public static void mai...
    周書達(dá)閱讀 812評(píng)論 0 0
  • 終于出院了,這次是三姨夫開車把我送回家的,打我生病以來的第一個(gè)月,三姨幾乎每天都會(huì)給我送飯,而且都是特別補(bǔ)...
    山東小百科閱讀 1,421評(píng)論 0 1

友情鏈接更多精彩內(nèi)容