可能存在一種情況,當(dāng)我們需要執(zhí)行的代碼塊數(shù)次,通常被稱為一個(gè)循環(huán)。
Java有非常靈活的三循環(huán)機(jī)制??梢允褂靡韵氯N循環(huán)之一:
截至Java5,對(duì)增強(qiáng)的for循環(huán)進(jìn)行了介紹。這主要是用于數(shù)組。
while循環(huán)是一個(gè)控制結(jié)構(gòu),可以重復(fù)的特定任務(wù)次數(shù)。
while循環(huán)的語(yǔ)法是:
while(Boolean_expression)
{
//Statements
}
在執(zhí)行時(shí),如果布爾表達(dá)式的結(jié)果為真,則循環(huán)中的動(dòng)作將被執(zhí)行。只要該表達(dá)式的結(jié)果為真,執(zhí)行將繼續(xù)下去。
在這里,while循環(huán)的關(guān)鍵點(diǎn)是循環(huán)可能不會(huì)永遠(yuǎn)運(yùn)行。當(dāng)表達(dá)式進(jìn)行測(cè)試,結(jié)果為假,循環(huán)體將被跳過(guò),在while循環(huán)之后的第一個(gè)語(yǔ)句將被執(zhí)行。
public class Test {
public static void main(String args[]) {
int x = 10;
while( x < 20 ) {
System.out.print("value of x : " + x );
x++;
System.out.print("\n");
}
}
}
這將產(chǎn)生以下結(jié)果:
value of x : 10
value of x : 11
value of x : 12
value of x : 13
value of x : 14
value of x : 15
value of x : 16
value of x : 17
value of x : 18
value of x : 19
do ... while循環(huán)類似于while循環(huán),不同的是一個(gè)do ... while循環(huán)是保證至少執(zhí)行一次。
do...while循環(huán)的語(yǔ)法是:
do
{
//Statements
} while (Boolean_expression);
請(qǐng)注意,布爾表達(dá)式出現(xiàn)在循環(huán)的結(jié)尾,所以在循環(huán)中的語(yǔ)句執(zhí)行前一次布爾測(cè)試。
如果布爾表達(dá)式為真,控制流跳回,并且在循環(huán)中的語(yǔ)句再次執(zhí)行。這個(gè)過(guò)程反復(fù)進(jìn)行,直到布爾表達(dá)式為假。
public class Test {
public static void main(String args[]){
int x = 10;
do{
System.out.print("value of x : " + x );
x++;
System.out.print("\n");
}while( x < 20 );
}
}
這將產(chǎn)生以下結(jié)果:
value of x : 10
value of x : 11
value of x : 12
value of x : 13
value of x : 14
value of x : 15
value of x : 16
value of x : 17
value of x : 18
value of x : 19
for循環(huán)是一個(gè)循環(huán)控制結(jié)構(gòu),可以有效地編寫(xiě)需要執(zhí)行的特定次數(shù)的循環(huán)。
知道一個(gè)任務(wù)要重復(fù)多少次的時(shí)候,for循環(huán)是有好處的。
for循環(huán)的語(yǔ)法是:
for(initialization; Boolean_expression; update)
{
//Statements
}
下面是一個(gè)for循環(huán)的控制流程:
初始化步驟首先被執(zhí)行,并且僅一次。這個(gè)步驟可聲明和初始化任何循環(huán)控制變量。不需要把一個(gè)聲明放在這里,只需要一個(gè)分號(hào)出現(xiàn)。
接下來(lái),布爾表達(dá)式求值。如果是 true,則執(zhí)行循環(huán)體。如果是false,則循環(huán)體不執(zhí)行, 并且流程控制的跳轉(zhuǎn)到經(jīng)過(guò)for循環(huán)的下一個(gè)語(yǔ)句。
之后循環(huán)體在for循環(huán)執(zhí)行時(shí),控制流程跳轉(zhuǎn)備份到更新語(yǔ)句。該語(yǔ)句允許更新任何循環(huán)控制變量。這個(gè)語(yǔ)句可以留空,只要一個(gè)分號(hào)出現(xiàn)在布爾表達(dá)式之后。
public class Test {
public static void main(String args[]) {
for(int x = 10; x < 20; x = x+1) {
System.out.print("value of x : " + x );
System.out.print("\n");
}
}
}
這將產(chǎn)生以下結(jié)果:
value of x : 10
value of x : 11
value of x : 12
value of x : 13
value of x : 14
value of x : 15
value of x : 16
value of x : 17
value of x : 18
value of x : 19
截至Java5,對(duì)增強(qiáng)的for循環(huán)進(jìn)行了介紹。這主要是用于數(shù)組。
增強(qiáng)的for循環(huán)的語(yǔ)法是:
for(declaration : expression)
{
//Statements
}
聲明: 新聲明塊變量,這是一種與你所正在訪問(wèn)數(shù)組中的元素兼容的變量。該變量在for塊內(nèi)可被利用并且它的值作為當(dāng)前的數(shù)組元素將是相同的。
public class Test {
public static void main(String args[]){
int [] numbers = {10, 20, 30, 40, 50};
for(int x : numbers ){
System.out.print( x );
System.out.print(",");
}
System.out.print("\n");
String [] names ={"James", "Larry", "Tom", "Lacy"};
for( String name : names ) {
System.out.print( name );
System.out.print(",");
}
}
}
這將產(chǎn)生以下結(jié)果:
10,20,30,40,50,
James,Larry,Tom,Lacy,
關(guān)鍵字break是用來(lái)停止整個(gè)循環(huán)的。 break關(guān)鍵字必須使用于任何循環(huán)中或一個(gè)switch語(yǔ)句中。
關(guān)鍵字break將停止最內(nèi)層循環(huán)的執(zhí)行,并開(kāi)始執(zhí)行在塊之后的下一行代碼。
break語(yǔ)法是任何循環(huán)中一個(gè)單獨(dú)的語(yǔ)句:
break
public class Test {
public static void main(String args[]) {
int [] numbers = {10, 20, 30, 40, 50};
for(int x : numbers ) {
if( x == 30 ) {
break;
}
System.out.print( x );
System.out.print("\n");
}
}
}
這將產(chǎn)生以下結(jié)果:
10
20
continue關(guān)鍵字可以在任一環(huán)的控制結(jié)構(gòu)使用。它使循環(huán)立即跳轉(zhuǎn)到循環(huán)的下一次迭代.
continue 語(yǔ)法是任何循環(huán)中一個(gè)單獨(dú)的語(yǔ)句:
continue
public static void main(String args[]) {
int [] numbers = {10, 20, 30, 40, 50};
for(int x : numbers ) {
if( x == 30 ) {
continue;
}
System.out.print( x );
System.out.print("\n");
}
}
}
這將產(chǎn)生以下結(jié)果:
10
20
40
50
在接下來(lái)的章節(jié),我們將會(huì)學(xué)習(xí)在Java程序設(shè)計(jì)中的決策語(yǔ)句。