新聞中心
只要某些預(yù)定的條件為真,一個 ??while??? 循環(huán)就會執(zhí)行一組任務(wù)。這被認(rèn)為是一個控制結(jié)構(gòu),可以指導(dǎo)程序的流程。它是一種你可以通過定義一個條件來告訴你的代碼要做什么的方法,它可以測試它,并根據(jù)它發(fā)現(xiàn)的情況采取行動。Java 中的兩種 ??while??? 循環(huán)是 ??while??? 和 ??do???/??while??。

宣漢網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站,宣漢網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為宣漢近1000家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)營銷網(wǎng)站建設(shè)要多少錢,請找那個售后服務(wù)好的宣漢做網(wǎng)站的公司定做!
Java while 循環(huán)
??while?? 循環(huán)的目的是對數(shù)據(jù)進行迭代,直到某個條件得到滿足。要創(chuàng)建一個 ??while?? 循環(huán),你需要提供一個可以測試的條件,然后是你想要運行的代碼。Java 有幾個內(nèi)置的測試函數(shù),其中最簡單的是數(shù)學(xué)運算符(???, ??>??, ??==??, 等等):
package com.opensource.example;public class Example { public static void main(String[] args) { int count = 0; while (count < 5) { System.out.printf("%d ", count); count++; } }}在這個簡單的例子中,條件是變量 ??count?? 小于 5。因為 ??count?? 被實例化為 0,然后在 ??while?? 循環(huán)的代碼中增加 1,所以程序總共迭代了 5 次:
$ java ./while.java0 1 2 3 4
在它進行第六次迭代之前,條件不再是真的,所以循環(huán)結(jié)束。
??while?? 循環(huán)的條件語句是至關(guān)重要的。弄錯了可能意味著你的循環(huán)永遠不會執(zhí)行。例如,假設(shè)你把 ??count == 5?? 作為條件:
while (count == 5) { System.out.printf("%d ", count); count++;當(dāng)你運行這段代碼時,它的構(gòu)建和運行都很成功,但什么也沒有發(fā)生:
$ java ./while.java$
循環(huán)被跳過了,因為 ??count?? 被設(shè)置為 0,而且在第一次遇到 while 循環(huán)的時候,它還是 0。循環(huán)從未開始,??count?? 也從未被遞增。
與此相反的是,當(dāng)一個條件開始為真,并且永遠不會為假時,這將導(dǎo)致一個無限循環(huán)。
Java do while 循環(huán)
與 ??while?? 循環(huán)相似,??do??/??while?? 循環(huán)在每次迭代結(jié)束時測試條件,而不是在開始時測試條件。有了這個循環(huán),循環(huán)中的代碼至少運行一次,因為沒有進入的入口,只有退出的出口:
package com.opensource.example;public class Example { public static void main(String[] args) { int count = 9; do { System.out.printf("%d ", count); count++; } while(count == 5); }}在這個示例代碼中,??count?? 被設(shè)置為 9。循環(huán)重復(fù)的條件是 ??count?? 等于 5,但是 9 不等于 5。不過,這個檢查要到第一次迭代結(jié)束時才進行:
$ java ./do.java9
Java 無限循環(huán)
無限循環(huán),正如它的名字所示,永遠不會結(jié)束。有時它們是被錯誤地創(chuàng)建的,但無限循環(huán)確實有一個有效的場景。有時你想讓一個進程無限地繼續(xù)下去(在功能上是無限的,因為你不能保證你需要它什么時候停止),因此你可能會把你的條件設(shè)置為不可能滿足的東西。
假設(shè)你寫了一個應(yīng)用程序,在僵尸天啟期間計算留在你附近的僵尸的數(shù)量。為了模擬需要多少個循環(huán)才能達到 0 個僵尸的不確定性,我的演示代碼從操作系統(tǒng)中檢索了一個時間戳,并將計數(shù)器(??c??)的值設(shè)置為從該時間戳得出的某個數(shù)字。因為這是一個簡單的例子,你不會真的想陷入一個無限循環(huán),這段代碼倒數(shù)到 0,并使用 ??break?? 函數(shù)來強制結(jié)束循環(huán):
package com.opensource.example;public class Example { public static void main(String[] args) { long myTime = System.currentTimeMillis(); int c; if ( myTime%2 == 0 ) { c = 128; } else { c = 1024; } while(true) { System.out.printf("%d Zombies\n", c); // break for convenience if ( c <= 0 ) { break; } c--; } }}你可能要運行幾次才能觸發(fā)不同的僵尸總數(shù),但有時你的程序會迭代 128 次,有時會迭代 1024 次:
$ java ./zcount.java1024 Zombies1023 Zombies[...]0 Zombies
你能說出為什么循環(huán)的終點是 0 而不是 -1 嗎?
Java 循環(huán)
循環(huán)使你能夠控制程序的執(zhí)行流程。迭代在編程中很常見,無論你使用 ??while?? 循環(huán)、??do??/??while?? 循環(huán)還是無限循環(huán),了解循環(huán)的工作原理都是至關(guān)重要的。
文章標(biāo)題:Java循環(huán)語句的簡要指南
標(biāo)題網(wǎng)址:http://m.fisionsoft.com.cn/article/djhpsjo.html


咨詢
建站咨詢
