這篇文章主要講解了“java循環(huán)語(yǔ)句實(shí)例用法”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“java循環(huán)語(yǔ)句實(shí)例用法”吧!
在鼓樓等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作按需求定制設(shè)計(jì),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,全網(wǎng)整合營(yíng)銷推廣,外貿(mào)網(wǎng)站建設(shè),鼓樓網(wǎng)站建設(shè)費(fèi)用合理。
5.2.1 while 語(yǔ)句
while 語(yǔ)句是Java 最基本的循環(huán)語(yǔ)句。當(dāng)它的控制表達(dá)式是真時(shí),while 語(yǔ)句重復(fù)執(zhí)行一個(gè)語(yǔ)句或語(yǔ)句塊。它的通用格式如下:
while(condition) {
// body of loop
}
條件condition 可以是任何布爾表達(dá)式。只要條件表達(dá)式為真,循環(huán)體就被執(zhí)行。當(dāng)條件condition 為假時(shí),程序控制就傳遞到循環(huán)后面緊跟的語(yǔ)句行。如果只有單個(gè)語(yǔ)句需要重復(fù),大括號(hào)是不必要的。
下面的while 循環(huán)從10開(kāi)始進(jìn)行減計(jì)數(shù),打印出10行“tick”。
// Demonstrate the while loop.
class While {
public static void main(String args[]) {
int n = 10;
while(n > 0) {
System.out.println("tick " + n);
n--;
}
}
}
當(dāng)你運(yùn)行這個(gè)程序,它將“tick”10次:
tick 10
tick 9
tick 8
tick 7
tick 6
tick 5
tick 4
tick 3
tick 2
tick 1
因?yàn)閣hile 語(yǔ)句在循環(huán)一開(kāi)始就計(jì)算條件表達(dá)式,若開(kāi)始時(shí)條件為假,則循環(huán)體一次也不會(huì)執(zhí)行。例如,下面的程序中,對(duì)println( ) 的調(diào)用從未被執(zhí)行過(guò):
int a = 10, b = 20;
while(a > b)
System.out.println("This will not be displayed");
while 循環(huán)(或Java 的其他任何循環(huán))的循環(huán)體可以為空。這是因?yàn)橐粋€(gè)空語(yǔ)句(null statement) (僅由一個(gè)分號(hào)組成的語(yǔ)句)在Java 的語(yǔ)法上是合法的。例如,下面的程序:
// The target of a loop can be empty.
class NoBody {
public static void main(String args[]) {
int i, j;
i = 100;
j = 200;
// find midpoint between i and j
while(++i < --j) ; // no body in this loop
System.out.println("Midpoint is " + i);
}
}
該程序找出變量i和變量j的中間點(diǎn)。它產(chǎn)生的輸出如下:
Midpoint is 150
該程序中的while 循環(huán)是這樣執(zhí)行的。值i自增,而值j自減,然后比較這兩個(gè)值。如果新的值i仍比新的值j小,則進(jìn)行循環(huán)。如果i等于或大于j,則循環(huán)停止。在退出循環(huán)前, i 將保存原始i和j的中間值(當(dāng)然,這個(gè)程序只有在開(kāi)始時(shí)i比j小的情況下才執(zhí)行)。正如你看到的,這里不需要循環(huán)體。所有的行為都出現(xiàn)在條件表達(dá)式自身內(nèi)部。在專業(yè)化的Java 代碼中,一些可以由控制表達(dá)式本身處理的短循環(huán)通常都沒(méi)有循環(huán)體。
5.2.2 do-while 循環(huán)
如你剛才所見(jiàn),如果while 循環(huán)一開(kāi)始條件表達(dá)式就是假的,那么循環(huán)體就根本不被執(zhí)行。然而,有時(shí)需要在開(kāi)始時(shí)條件表達(dá)式即使是假的情況下,while 循環(huán)至少也要執(zhí)行一次。換句話說(shuō),有時(shí)你需要在一次循環(huán)結(jié)束后再測(cè)試中止表達(dá)式,而不是在循環(huán)開(kāi)始時(shí)。幸運(yùn)的是,Java 就提供了這樣的循環(huán):do-while 循環(huán)。do-while 循環(huán)總是執(zhí)行它的循環(huán)體至少一次,因?yàn)樗臈l件表達(dá)式在循環(huán)的結(jié)尾。它的通用格式如下:
do {
// body of loop
} while (condition);
do-while 循環(huán)總是先執(zhí)行循環(huán)體,然后再計(jì)算條件表達(dá)式。如果表達(dá)式為真,則循環(huán)繼續(xù)。否則,循環(huán)結(jié)束。對(duì)所有的Java 循環(huán)都一樣,條件condition 必須是一個(gè)布爾表達(dá)式。下面是一個(gè)重寫的“tick”程序,用來(lái)演示do-while 循環(huán)。它的輸出與先前程序的輸出相同。
// Demonstrate the do-while loop.
class DoWhile {
public static void main(String args[]) {
int n = 10;
do {
System.out.println("tick " + n);
n--;
} while(n > 0);
}
}
該程序中的循環(huán)雖然在技術(shù)上是正確的,但可以像如下這樣編寫更為高效:
do {
System.out.println("tick " + n);
} while(--n > 0);
在本例中,表達(dá)式“-- n > 0 ”將n值的遞減與測(cè)試n是否為0組合在一個(gè)表達(dá)式中。它的執(zhí)行過(guò)程是這樣的。首先,執(zhí)行-- n 語(yǔ)句,將變量n遞減,然后返回n的新值。這個(gè)值再與0比較,如果比0大,則循環(huán)繼續(xù)。否則結(jié)束。
do-while 循環(huán)在你編制菜單選擇時(shí)尤為有用,因?yàn)橥ǔ6枷胱尣藛窝h(huán)體至少執(zhí)行一次。下面的程序是一個(gè)實(shí)現(xiàn)Java 選擇和重復(fù)語(yǔ)句的很簡(jiǎn)單的幫助系統(tǒng):
// Using a do-while to process a menu selection
class Menu {
public static void main(String args[])
throws java.io.IOException {
char choice;
do {
System.out.println("Help on:");
System.out.println(" 1. if");
System.out.println(" 2. switch");
System.out.println(" 3. while");
System.out.println(" 4. do-while");
System.out.println(" 5. for
");
System.out.println("Choose one:");
choice = (char) System.in.read();
} while( choice < '1' || choice > '5');
System.out.println("
");
switch(choice) {
case '1':
System.out.println("The if:
");
System.out.println("if(condition) statement;");
System.out.println("else statement;");
break;
case '2':
System.out.println("The switch:
");
System.out.println("switch(expression) {");
System.out.println(" case constant:");
System.out.println(" statement sequence");
System.out.println(" break;");
System.out.println(" // ...");
System.out.println("}");
break;
case '3':
System.out.println("The while:
");
System.out.println("while(condition) statement;");
break;
case '4':
System.out.println("The do-while:
");
System.out.println("do {");
System.out.println(" statement;");
System.out.println("} while (condition);");
break;
case '5':
System.out.println("The for:
");
System.out.print("for(init; condition; iteration)");
System.out.println(" statement;");
break;
}
}
}
下面是這個(gè)程序執(zhí)行的一個(gè)樣本輸出:
Help on:
1. if
2. switch
3. while
4. do-while
5. for
Choose one:
4
The do-while:
do {
statement;
} while (condition);
在程序中,do-while 循環(huán)用來(lái)驗(yàn)證用戶是否輸入了有效的選擇。如果沒(méi)有,則要求用戶重新輸入。因?yàn)椴藛沃辽僖@示一次,do-while 循環(huán)是完成此任務(wù)的合適語(yǔ)句。
關(guān)于此例的其他幾點(diǎn):注意從鍵盤輸入字符通過(guò)調(diào)用System.in.read( ) 來(lái)讀入。這是一個(gè)Java 的控制臺(tái)輸入函數(shù)。盡管Java 的終端 I/O (輸入/輸出)方法將在第12章中詳細(xì)討論,在這里使用System.in.read ( ) 來(lái)讀入用戶的選擇。它從標(biāo)準(zhǔn)的輸入讀取字符(返回整數(shù),因此將返回值choice 定義為字符型)。默認(rèn)地,標(biāo)準(zhǔn)輸入是按行進(jìn)入緩沖區(qū)的,因此在你輸入的任何字符被送到你的程序以前,必須按回車鍵。
Java 的終端輸入功能相當(dāng)有限且不好使用。進(jìn)一步說(shuō),大多數(shù)現(xiàn)實(shí)的Java 程序和applets (小應(yīng)用程序)都具有圖形界面并且是基于窗口的。因此,這本書使用終端的輸入并不多。然而,它在本例中是有用的。另外一點(diǎn):因?yàn)槭褂?System.in.read ( ) ,程序必須指定throws java.io.IOException 子句。這行代碼對(duì)于處理輸入錯(cuò)誤是必要的。這是Java 的異常處理的一部分,將在第10章討論。
5.2.3 for 循環(huán)
在第2章曾使用過(guò)一個(gè)for循環(huán)的簡(jiǎn)單格式。你將看到,for循環(huán)是一個(gè)功能強(qiáng)大且形式靈活的結(jié)構(gòu)。下面是for 循環(huán)的通用格式:
for(initialization; condition; iteration) {
// body
}
如只有一條語(yǔ)句需要重復(fù),大括號(hào)就沒(méi)有必要。
for循環(huán)的執(zhí)行過(guò)程如下。第一步,當(dāng)循環(huán)啟動(dòng)時(shí),先執(zhí)行其初始化部分。通常,這是設(shè)置循環(huán)控制變量值的一個(gè)表達(dá)式,作為控制循環(huán)的計(jì)數(shù)器。重要的是你要理解初始化表達(dá)式僅被執(zhí)行一次。下一步,計(jì)算條件condition 的值。條件condition 必須是布爾表達(dá)式。它通常將循環(huán)控制變量與目標(biāo)值相比較。如果這個(gè)表達(dá)式為真,則執(zhí)行循環(huán)體;如果為假,則循環(huán)終止。再下一步執(zhí)行循環(huán)體的反復(fù)部分。這部分通常是增加或減少循環(huán)控制變量的一個(gè)表達(dá)式。接下來(lái)重復(fù)循環(huán),首先計(jì)算條件表達(dá)式的值,然后執(zhí)行循環(huán)體,接著執(zhí)行反復(fù)表達(dá)式。這個(gè)過(guò)程不斷重復(fù)直到控制表達(dá)式變?yōu)榧佟?br/>
下面是使用for 循環(huán)的“tick”程序:
// Demonstrate the for loop.
class ForTick {
public static void main(String args[]) {
int n;
for(n=10; n>0; n--)
System.out.println("tick " + n);
}
}
在for 循環(huán)中聲明循環(huán)控制變量
控制for循環(huán)的變量經(jīng)常只是用于該循環(huán),而不用在程序的其他地方。在這種情況下,可以在循環(huán)的初始化部分中聲明變量。例如,下面重寫了前面的程序,使變量 n 在for循環(huán)中被聲明為整型:
// Declare a loop control variable inside the for.
class ForTick {
public static void main(String args[]) {
// here, n is declared inside of the for loop
for(int n=10; n>0; n--)
System.out.println("tick " + n);
}
}
當(dāng)你在for 循環(huán)內(nèi)聲明變量時(shí),必須記住重要的一點(diǎn):該變量的作用域在for語(yǔ)句執(zhí)行后就結(jié)束了(因此,該變量的作用域就局限于for 循環(huán)內(nèi))。在for循環(huán)外,變量就不存在了。如果你在程序的其他地方需要使用循環(huán)控制變量,你就不能在for循環(huán)中聲明它。
由于循環(huán)控制變量不會(huì)在程序的其他地方使用,大多數(shù)程序員都在for循環(huán)中來(lái)聲明它。例如,以下為測(cè)試素?cái)?shù)的一個(gè)簡(jiǎn)單程序。注意由于其他地方不需要i,所以循環(huán)控制變量i在for循環(huán)中聲明。
// Test for primes.
class FindPrime {
public static void main(String args[]) {
int num;
boolean isPrime = true;
num = 14;
for(int i=2; i <= num/2; i++) {
if((num % i) == 0) {
isPrime = false;
break;
}
}
if(isPrime) System.out.println("Prime");
else System.out.println("Not Prime");
}
}
使用逗號(hào)
你可能經(jīng)常需要在初始化和for循環(huán)的反復(fù)部分包括超過(guò)一個(gè)變量的聲明。例如,考慮下面程序的循環(huán)部分:
class Sample {
public static void main(String args[]) {
int a, b;
b = 4;
for(a=1; a
System.out.println("a = " + a);
System.out.println("b = " + b);
b--;
}
}
}
如你所看到的,循環(huán)被兩個(gè)相互作用的變量控制。由于循環(huán)被兩個(gè)變量控制,如果兩個(gè)變量都能被定義在for 循環(huán)中,而變量b不需要通過(guò)人工處理將是很有用的。幸好,Java 提供了一個(gè)完成此任務(wù)的方法。為了允許兩個(gè)或兩個(gè)以上的變量控制循環(huán),Java 允許你在for 循環(huán)的初始化部分和反復(fù)部分聲明多個(gè)變量,每個(gè)變量之間用逗號(hào)分開(kāi)。
使用逗號(hào),前面的for循環(huán)將更高效,改寫后的程序如下:
// Using the comma.
class Comma {
public static void main(String args[]) {
int a, b;
for(a=1, b=4; a
}
}
}
在本例中,初始化部分把兩個(gè)變量a和 b都定義了。在循環(huán)的反復(fù)部分,用兩個(gè)逗號(hào)分開(kāi)的語(yǔ)句在每次循環(huán)重復(fù)時(shí)都執(zhí)行。程序輸出如下:
a = 1
b = 4
a = 2
b = 3
注意:如果你對(duì)C/C++ 熟悉,你就會(huì)知道逗號(hào)是一個(gè)運(yùn)算符,能在任何有效的表達(dá)
式中使用。然而,在Java 中不是這樣。在 Java 中,逗號(hào)僅僅是一個(gè)分隔符,只
適用于for循環(huán)。
5.2.4 for 循環(huán)的一些變化
for循環(huán)支持一些變化,這增加了它的功能和靈活性。for循環(huán)這樣靈活是因?yàn)樗?部分(初始化部分,條件測(cè)試部分和反復(fù)部分)并不僅用于它們所限定的那些目的。事實(shí)上,for 循環(huán)的3部分能被用于你需要的任何目的。讓我們看一些例子。
最普通的變化之一包含在條件表達(dá)式中。具體地說(shuō),條件表達(dá)式可以不需要用循環(huán)變量和目標(biāo)值的比較來(lái)測(cè)試循環(huán)條件。事實(shí)上,控制for 循環(huán)的條件可以是任何布爾表達(dá)式。例如,考慮下列程序片段:
boolean done = false;
for(int i=1; !done; i++) {
// ...
if(interrupted()) done = true;
}
在本例中,for循環(huán)將一直運(yùn)行,直到布爾型變量done 被設(shè)置為真。for循環(huán)的條件部分不測(cè)試值i。
下面是for循環(huán)的另外一個(gè)有趣的變化。在Java 中可以使for循環(huán)的初始化、條件或者反復(fù)部分中的任何或者全部都為空,如下面的程序:
// Parts of the for loop can be empty.
class ForVar {
public static void main(String args[]) {
int i;
boolean done = false;
i = 0;
for( ; !done; ) {
System.out.println(" {System.out.println(?a=" + a);System.out.println(" b--) a++, /> System.out.println();
}
}
}
該程序產(chǎn)生的輸出如下所示:
. . . . . . . . . .
. . . . . . . . .
. . . . . . . .
. . . . . . .
. . . . . .
. . . . .
. . . .
. . .
. .
.
感謝各位的閱讀,以上就是“java循環(huán)語(yǔ)句實(shí)例用法”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)java循環(huán)語(yǔ)句實(shí)例用法這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
網(wǎng)站欄目:java循環(huán)語(yǔ)句實(shí)例用法-創(chuàng)新互聯(lián)
文章路徑:http://jinyejixie.com/article44/dhdihe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、響應(yīng)式網(wǎng)站、用戶體驗(yàn)、網(wǎng)站改版、標(biāo)簽優(yōu)化、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容