簡體   English   中英

這兩個代碼片段有什么區別?

[英]What is difference between these two code snippets?

下面是兩個代碼,第一個正在編譯,結果是無限循環,但另一個代碼我得到一個編譯器錯誤“不是語句”。 由於Math.random()在 0.0 和 1.0 之間返回double精度,所以我很奇怪為什么它們都沒有給出相同的結果。

第一

    for(;;Math.random()){
        System.out.println("Infinity Loop");
    }

第二

    double i = 0.12654;
    for(;;i){
      System.out.println("Compile error");
    }

for 循環需要三個用分號分隔的語句(或者,如您所說明的,您可以沒有語句)。

Java 支持三種類型的語句:

  1. 表達式語句 - 創建對象、調用方法或更改變量的語句(例如 Math.random())
  2. 聲明語句 - 例如 double i = 0.12654
  3. 控制流語句 - 即 if、else、while 等

第二個化身中的 i 不是上述任何一個,這就是它編譯失敗的原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM