Linux中國

Java 循環語句的簡要指南

無論你使用的是 while 循環do/while 循環,還是無限循環,了解循環的工作原理對 Java 編程至關重要。

只要某些預定的條件為真,一個 while 循環就會執行一組任務。這被認為是一個控制結構,可以指導程序的流程。它是一種你可以通過定義一個條件來告訴你的代碼要做什麼的方法,它可以測試它,並根據它發現的情況採取行動。Java 中的兩種 while 循環是 whiledo/while

Java while 循環

while 循環的目的是對數據進行迭代,直到某個條件得到滿足。要創建一個 while 循環,你需要提供一個可以測試的條件,然後是你想要運行的代碼。Java 有幾個內置的測試函數,其中最簡單的是數學運算符(<, >, ==, 等等):

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 循環的代碼中增加 1,所以程序總共迭代了 5 次:

$ java ./while.java
0 1 2 3 4

在它進行第六次迭代之前,條件不再是真的,所以循環結束。

while 循環的條件語句是至關重要的。弄錯了可能意味著你的循環永遠不會執行。例如,假設你把 count == 5 作為條件:

while (count == 5) {
    System.out.printf("%d ", count);
    count++;

當你運行這段代碼時,它的構建和運行都很成功,但什麼也沒有發生:

$ java ./while.java
$

循環被跳過了,因為 count 被設置為 0,而且在第一次遇到 while 循環的時候,它還是 0。循環從未開始,count 也從未被遞增。

與此相反的是,當一個條件開始為真,並且永遠不會為假時,這將導致一個無限循環。

Java do while 循環

while 循環相似,do/while 循環在每次迭代結束時測試條件,而不是在開始時測試條件。有了這個循環,循環中的代碼至少運行一次,因為沒有進入的入口,只有退出的出口:

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 被設置為 9。循環重複的條件是 count 等於 5,但是 9 不等於 5。不過,這個檢查要到第一次迭代結束時才進行:

$ java ./do.java
9

Java 無限循環

無限循環,正如它的名字所示,永遠不會結束。有時它們是被錯誤地創建的,但無限循環確實有一個有效的場景。有時你想讓一個進程無限地繼續下去(在功能上是無限的,因為你不能保證你需要它什麼時候停止),因此你可能會把你的條件設置為不可能滿足的東西。

假設你寫了一個應用程序,在殭屍天啟期間計算留在你附近的殭屍的數量。為了模擬需要多少個循環才能達到 0 個殭屍的不確定性,我的演示代碼從操作系統中檢索了一個時間戳,並將計數器(c)的值設置為從該時間戳得出的某個數字。因為這是一個簡單的例子,你不會真的想陷入一個無限循環,這段代碼倒數到 0,並使用 break 函數來強制結束循環:

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 Zombiesn", c);

    // break for convenience
    if ( c <= 0 ) { break; }
    c--;
    }
  }
}

你可能要運行幾次才能觸發不同的殭屍總數,但有時你的程序會迭代 128 次,有時會迭代 1024 次:

$ java ./zcount.java
1024 Zombies
1023 Zombies
[...]
0 Zombies

你能說出為什麼循環的終點是 0 而不是 -1 嗎?

Java 循環

循環使你能夠控制程序的執行流程。迭代在編程中很常見,無論你使用 while 循環、do/while 循環還是無限循環,了解循環的工作原理都是至關重要的。

via: https://opensource.com/article/23/1/java-loops

作者:Seth Kenlon 選題:lkxed 譯者:geekpi 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國