真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java跳轉(zhuǎn)語句有哪些-創(chuàng)新互聯(lián)

這篇文章將為大家詳細講解有關(guān)java 跳轉(zhuǎn)語句有哪些,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

創(chuàng)新互聯(lián)公司是一家專業(yè)從事成都網(wǎng)站設(shè)計、成都做網(wǎng)站、網(wǎng)頁設(shè)計的品牌網(wǎng)絡(luò)公司。如今是成都地區(qū)具影響力的網(wǎng)站設(shè)計公司,作為專業(yè)的成都網(wǎng)站建設(shè)公司,創(chuàng)新互聯(lián)公司依托強大的技術(shù)實力、以及多年的網(wǎng)站運營經(jīng)驗,為您提供專業(yè)的成都網(wǎng)站建設(shè)、營銷型網(wǎng)站建設(shè)及網(wǎng)站設(shè)計開發(fā)服務(wù)!

Java 支持 3 種跳轉(zhuǎn)語句:break,continue 和return 。這些語句把控制轉(zhuǎn)移到程序的其他部分。

下面對每一種語句進行討論。
注意:除了這里討論的跳轉(zhuǎn)語句,Java 還支持另一種能改變你程序執(zhí)行流程的方法:通過異常處理。異常處理提供了一種結(jié)構(gòu)化的方法,通過該方法可以使你的程序捕獲并處理運行時刻錯誤。它由下列五個關(guān)鍵字來控制:try,catch,throw,throws,和 finally 。實質(zhì)上,異常處理機制允許你的程序完成一個非局部的分支跳轉(zhuǎn)。由于異常處理是一個大話題,我們將在第 10 章專門討論。
5.3.1 使用break 語句
在Java 中,break語句有3種作用。第一,你已經(jīng)看到,在switch語句中,它被用來終止一個語句序列。第二,它能被用來退出一個循環(huán)。第三,它能作為一種“先進”的goto 語句來使用。下面對最后 2種用法進行解釋。

使用break 退出循環(huán)

可以使用break 語句直接強行退出循環(huán),忽略循環(huán)體中的任何其他語句和循環(huán)的條件測試。在循環(huán)中遇到break語句時,循環(huán)被終止,程序控制在循環(huán)后面的語句重新開始。下面是一個簡單的例子:

// Using break to exit a loop.
class BreakLoop {
public static void main(String args[]) {

for(int i=0; i<100; i++) {
if(i == 10) break; // terminate loop if i is 10
System.out.println("i: " + i);

}
System.out.println("Loop complete.");
}
}

該程序產(chǎn)生如下的輸出:

i: 0
i: 1
i: 2
i: 3
i: 4
i: 5
i: 6
i: 7
i: 8
i: 9
Loop complete.

正如你看到的那樣,盡管for 循環(huán)被設(shè)計為從 0執(zhí)行到99,但是當i等于10時,break語句終止了程序。break語句能用于任何 Java 循環(huán)中,包括人們有意設(shè)置的無限循環(huán)。例如,將上一個程序用while 循環(huán)改寫如下。該程序的輸出和剛才看到的輸出一樣。

// Using break to exit a while loop.
class BreakLoop2 {
public static void main(String args[]) {
int i = 0;

while(i < 100) {
if(i == 10) break; // terminate loop if i is 10
System.out.println("i: " + i);
i++;

}
System.out.println("Loop complete.");
}
}

在一系列嵌套循環(huán)中使用break 語句時,它將僅僅終止最里面的循環(huán)。例如:

// Using break with nested loops.
class BreakLoop3 {
public static void main(String args[]) {

for(int i=0; i<3; i++) {
System.out.print("Pass " + i + ": ");
for(int j=0; j<100; j++) {

if(j == 10) break; // terminate loop if j is 10

System.out.print(j + " ");
}
System.out.println();

}
System.out.println("Loops complete.");
}
}

該程序產(chǎn)生如下的輸出:

Pass 0: 0 1 2 3 4 5 6 7 8 9
Pass 1: 0 1 2 3 4 5 6 7 8 9
Pass 2: 0 1 2 3 4 5 6 7 8 9
Loops complete.

從中可以看出,在內(nèi)部循環(huán)中的break語句僅僅終止了該循環(huán),外部的循環(huán)不受影響。

關(guān)于break ,在這里要記住兩點。首先,一個循環(huán)中可以有一個以上的break 語句。但要小心,太多的break 語句會破壞你的代碼結(jié)構(gòu)。其次,switch語句中的break僅僅影響該switch 語句,而不會影響其中的任何循環(huán)。

注意:break 不是被設(shè)計來提供一種正常的循環(huán)終止的方法。循環(huán)的條件語句是專門用來終止循環(huán)的。只有在某類特殊的情況下,才用break 語句來取消一個循環(huán)。

把break 當作goto 的一種形式來用

break 語句除了在switch語句和循環(huán)中使用之外,它還能作為goto 語句的一種“文明”形式來使用。Java 中沒有 goto 語句,因為goto 語句提供了一種改變程序運行流程的非結(jié)構(gòu)化方式。這通常使程序難以理解和難于維護。它也阻止了某些編譯器的優(yōu)化。但是,有些地方goto 語句對于構(gòu)造流程控制是有用的而且是合法的。例如,從嵌套很深的循環(huán)中退出時, goto 語句就很有幫助。因此,Java 定義了break 語句的一種擴展形式來處理這種情況。通過使用這種形式的break,你可以終止一個或者幾個代碼塊。這些代碼塊不必是一個循環(huán)或一個switch語句的一部分,它們可以是任何的塊。而且,由于這種形式的break 語句帶有標簽,你可以明確指定執(zhí)行從何處重新開始。你將看到,break帶給你的是goto 的益處,并舍棄了goto 語句帶來的麻煩。

標簽break 語句的通用格式如下所示:

break label;
這里,標簽label 是標識代碼塊的標簽。當這種形式的break執(zhí)行時,控制被傳遞出指定的代碼塊。被加標簽的代碼塊必須包圍break 語句,但是它不需要是直接的包圍break的塊。這意味著你可以使用一個加標簽的break 語句退出一系列的嵌套塊。但是你不能使用break 語句將控制傳遞到不包含break 語句的代碼塊。

要指定一個代碼塊,在其開頭加一個標簽即可。標簽(label )可以是任何合法有效的Java 標識符后跟一個冒號。一旦你給一個塊加上標簽后,你就可以使用這個標簽作為break 語句的對象了。這樣做會使執(zhí)行在加標簽的塊的結(jié)尾重新開始。例如,下面的程序示例了 3 個嵌套塊,每一個都有它自己的標簽。break語句使執(zhí)行向前跳,調(diào)過了定義為標簽second 的代碼塊結(jié)尾,跳過了2個println ( ) 語句。

// Using break as a civilized form of goto.
class Break {
public static void main(String args[]) {
boolean t = true;

first: {
second: {

third: {System.out.println("Before the break.");if(t) break second; // break out of second blockSystem.out.println("This won't execute");

}

System.out.println("This won't execute");}System.out.println("This is after second block.");

}
}
}

運行該程序,產(chǎn)生如下的輸出:

Before the break.
This is after second block.

標簽break 語句的一個最普遍的用法是退出循環(huán)嵌套。例如,下面的程序中,外層的循環(huán)只執(zhí)行了一次:

// Using break to exit from nested loops
class BreakLoop4 {
public static void main(String args[]) {

outer: for(int i=0; i<3; i++) {
System.out.print("Pass " + i + ": ");
for(int j=0; j<100; j++) {

if(j == 10) break outer; // exit both loops
System.out.print(j + " ");
}

System.out.println("This will not print");
}
System.out.println("Loops complete.");

}
}
該程序產(chǎn)生如下的輸出:

Pass 0: 0 1 2 3 4 5 6 7 8 9 Loops complete.

你可以看到,當內(nèi)部循環(huán)退到外部循環(huán)時,兩個循環(huán)都被終止了。記住如果一個標簽不在包圍break的塊中定義,你就不能break 到該標簽。例如,下面的程序就是非法的,且不會被編譯:

// This program contains an error.
class BreakErr {
public static void main(String args[]) {

one: for(int i=0; i<3; i++) {
System.out.print("Pass " + i + ": ");
}

for(int j=0; j<100; j++) {
if(j == 10) break one; // WRONG
System.out.print(j + " ");

}
}
}

因為標簽為one的循環(huán)沒有包圍break 語句,所以不能將控制傳遞到該塊。

5.3.2 使用continue 語句
有時強迫一個循環(huán)提早反復(fù)是有用的。也就是,你可能想要繼續(xù)運行循環(huán),但是要忽略這次重復(fù)剩余的循環(huán)體的語句。實際上,goto 只不過是跳過循環(huán)體,到達循環(huán)的尾部。continue 語句是break語句的補充。在while 和do while 循環(huán)中,continue 語句使控制直接轉(zhuǎn)移給控制循環(huán)的條件表達式,然后繼續(xù)循環(huán)過程。在for 循環(huán)中,循環(huán)的反復(fù)表達式被求值,然后執(zhí)行條件表達式,循環(huán)繼續(xù)執(zhí)行。對于這3種循環(huán),任何中間的代碼將被旁路。

下例使用continue 語句,使每行打印2個數(shù)字:

// Demonstrate continue.
class Continue {
public static void main(String args[]) {

for(int i=0; i<10; i++) {
System.out.print(i + " ");
if (i%2 == 0) continue;
System.out.println("");

}
}
}

該程序使用%(模)運算符來檢驗變量i是否為偶數(shù),如果是,循環(huán)繼續(xù)執(zhí)行而不輸出一個新行。該程序的結(jié)果如下:

0 1
2 3
4 5
6 7
8 9

對于break語句,continue 可以指定一個標簽來說明繼續(xù)哪個包圍的循環(huán)。下面的例子運用continue 語句來打印0到9的三角形乘法表:

// Using continue with a label.

class ContinueLabel {

public static void main(String args[]) {

outer: for (int i=0; i<10; i++) {

for(int j=0; j<10; j++) {

if(j > i) {

System.out.println();

continue outer; }

System.out.print(" " + (i * j)); }}

System.out.println();

}

}

在本例中的continue 語句終止了計數(shù)j的循環(huán)而繼續(xù)計數(shù)i的下一次循環(huán)反復(fù)。該程序的輸出如下:

0
0 1
0 2 4
0 3 6 9
0 4 8 12 16
0 5 10 15 20 25
0 6 12 18 24 30 36
0 7 14 21 28 35 42 49
0 8 16 24 32 40 48 56 64
0 9 18 27 36 45 54 63 72 81

很好的利用continue 語句的情況很少,一個原因是Java 提供了一系列豐富的循環(huán)語句,可以適用于絕大多數(shù)應(yīng)用程序。但是,對于那些需要提早反復(fù)的特殊情形,continue 語句提供了一個結(jié)構(gòu)化的方法來實現(xiàn)。

5.3.3 使用return語句
最后一個控制語句是return。return語句用來明確地從一個方法返回。也就是,return 語句使程序控制返回到調(diào)用它的方法。因此,將它分類為跳轉(zhuǎn)語句。盡管對return 語句的詳細討論在第 7 章開始,這里對其作簡要地介紹。

在一個方法的任何時間,return 語句可被用來使正在執(zhí)行的分支程序返回到調(diào)用它的方法。下面的例子說明這一點。下例中,由于是Java 運行系統(tǒng)調(diào)用main() ,因此,return語句使程序執(zhí)行返回到Java 運行系統(tǒng)。

// Demonstrate return.
class Return {
public static void main(String args[]) {
boolean t = true;

System.out.println("Before the return.");

if(t) return; // return to caller

System.out.println("This won't execute.");
}
}

該程序的結(jié)果如下:
Before the return.

正如你看到的一樣,最后的println( ) 語句沒有被執(zhí)行。一旦return語句被執(zhí)行,程序控制傳遞到它的調(diào)用者。
最后一點:在上面的程序中,if(t)語句是必要的。沒有它,Java 編譯器將標記“執(zhí)行不到的代碼”(unreachable code )錯誤,因為編譯器知道最后的println ()語句將永遠不會被執(zhí)行。為阻止這個錯誤,為了這個例子能夠執(zhí)行,在這里使用if語句來“蒙騙”編譯器。

關(guān)于java 跳轉(zhuǎn)語句有哪些就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。


文章題目:java跳轉(zhuǎn)語句有哪些-創(chuàng)新互聯(lián)
當前地址:http://weahome.cn/article/ehgsg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部