在本教程中,我們將借助示例學(xué)習(xí)如何在Java中使用for循環(huán),并且還將學(xué)習(xí)for循環(huán)在計(jì)算機(jī)編程中的工作方式。
在計(jì)算機(jī)編程中,循環(huán)用于重復(fù)特定的代碼塊,直到滿足特定條件(測(cè)試表達(dá)式為false)為止。例如,
想象一下,我們需要在屏幕上打印一個(gè)句子50次。好吧,我們可以通過(guò)使用print語(yǔ)句50次(不使用循環(huán))來(lái)做到這一點(diǎn)。您需要打印一百萬(wàn)次句子怎么樣?這時(shí)您需要使用循環(huán)。使用循環(huán),我們可以只編寫一次print語(yǔ)句,然后運(yùn)行任意次數(shù)。
這只是一個(gè)簡(jiǎn)單的示例,顯示了循環(huán)在計(jì)算機(jī)編程中的重要性。
Java 中for循環(huán)的語(yǔ)法是:
for (initialization; testExpression; update) { // 循環(huán)體內(nèi)的代碼 }
初始化(initialization)表達(dá)式只執(zhí)行一次。
然后,評(píng)估測(cè)試表達(dá)式(testExpression)。在這里,測(cè)試表達(dá)式(testExpression)是一個(gè)布爾表達(dá)式。
如果測(cè)試表達(dá)式(testExpression)的計(jì)算結(jié)果為true,則執(zhí)行for循環(huán)體內(nèi)的代碼。
然后執(zhí)行更新表達(dá)式(update)。
再次,評(píng)估測(cè)試表達(dá)式(initialization)。
如果測(cè)試表達(dá)式為true,則執(zhí)行for循環(huán)體內(nèi)的代碼,并繼續(xù)執(zhí)行更新表達(dá)式(update)。
這個(gè)過(guò)程一直進(jìn)行到測(cè)試表達(dá)式(testExpression)被評(píng)估為false時(shí)為止。
如果測(cè)試表達(dá)式(testExpression)的計(jì)算結(jié)果為false,則for循環(huán)終止。
//程序打印一個(gè)句子十次 class Loop { public static void main(String[] args) { for (int i = 1; i <= 10; ++i) { System.out.println("Line " + i); } } }
輸出:
Line 1 Line 2 Line 3 Line 4 Line 5 Line 6 Line 7 Line 8 Line 9 Line 10
在上面的示例中,我們有
初始化表達(dá)式:int i = 1
測(cè)試表達(dá)式:i <= 10
更新表達(dá)式:++ i
在這里,i最初的值是1。因此,測(cè)試表達(dá)式第一次求值為true。所以,將執(zhí)行打印語(yǔ)句?,F(xiàn)在將評(píng)估更新表達(dá)式。
每次評(píng)估更新表達(dá)式時(shí),i的值都會(huì)增加1。再次,評(píng)估測(cè)試表達(dá)式。并且,重復(fù)相同的過(guò)程。
該過(guò)程一直持續(xù)到i為11。當(dāng)i為11時(shí),測(cè)試表達(dá)式(i <= 10)為false,for循環(huán)終止。
要了解有關(guān)測(cè)試表達(dá)式及其評(píng)估方式的更多信息,請(qǐng)?jiān)L問(wèn)關(guān)系運(yùn)算符和邏輯運(yùn)算符。
//程序查找從1到1000的自然數(shù)之和。 class Number { public static void main(String[] args) { int sum = 0; for (int i = 1; i <= 1000; ++i) { sum += i; //等同于 sum = sum + i } System.out.println("Sum = " + sum); } }
輸出:
Sum = 500500
在這里,我們有一個(gè)名為sum的變量。其初始值為0。在for循環(huán)內(nèi)部,我們初始化了一個(gè)名為i的變量的值為1。
在for循環(huán)的每次迭代中,
為sum變量分配值:sum + i
i的值增加1
循環(huán)一直進(jìn)行到i的值大于1000為止。為了獲得更好的可視化效果,
1 重復(fù): i = 1 同時(shí) sum = 0+1 = 1 2 重復(fù): i = 2 同時(shí) sum = 1+2 = 3 3 重復(fù): i = 3 同時(shí) sum = 3+3 = 6 4 重復(fù): i = 4 同時(shí) sum = 6+4 = 10 ... .. ... 999 重復(fù): i = 999 同時(shí) sum = 498501 + 999 = 499500 1000 重復(fù): i = 1000 同時(shí) sum = 499500 + 1000 = 500500
在使用循環(huán)時(shí),我們應(yīng)始終小心。這是因?yàn)槿绻覀冨e(cuò)誤地將測(cè)試表達(dá)式設(shè)置為從不為false時(shí),則for循環(huán)將永遠(yuǎn)運(yùn)行。
這稱為無(wú)限循環(huán)。例如,
//無(wú)限循環(huán) class Infinite { public static void main(String[] args) { int sum = 0; for (int i = 1; i <= 10; --i) { System.out.println("Hello"); } } }
在這里,測(cè)試表達(dá)式(i <= 10)永遠(yuǎn)不會(huì)出現(xiàn)false,并且hello會(huì)無(wú)數(shù)次打?。ㄖ辽僭诶碚撋鲜沁@樣)。
for ( ; ; ) { }
在Java中,for循環(huán)的另一種語(yǔ)法可用于Java數(shù)組和Java集合(稱為遍歷循環(huán))。例如,
for (int a : array) { System.out.println(a); }
要了解更多信息,請(qǐng)?jiān)L問(wèn):Java 遍歷循環(huán)