HOWTO · Java
Java 單行 if 語句
本文介紹 Jav 單行 if 語句
Java 語言中有 52 個關鍵字或預定義詞。我們稱這些單詞為保留字,因為它們在語言中具有某些特定的預定義含義。
在這組保留字中,if-else 是其中之一。我們使用此關鍵字指定任何條件。if-else 塊的結構如下:
if (condition == true) {
doThis;
} else {
doSomethingElse;
}
我們可以在括號 () 中的條件中給出任何表示式。
如果 if 塊中的表示式為真,則執行 doThis 語句。如果表示式的計算結果為 false,則應執行 doSomethingElse。
如我們所見,執行一條簡單的 if-else 型別的操作需要花費五行。這種評估的替代方法是使用三元運算子。
Java 三元運算子
三元運算子是 Java if-else 語句的簡寫形式。該運算子的語法定義如下。
condition ? expression1 : expression2;
在上面的語句中,首先評估 condition。如果 condition 評估為 true,則執行 expression1。如果 condition 評估為 false,則將執行 expression2。
由於上述運算子采用三個運算元條件和兩個表示式,因此稱為三元運算子。
下面是示範程式的例子。
package ternaryOperator;
public class TernaryOperator {
public static void main(String[] args) {
int marks = 67;
String distinction = marks > 70 ? "Yes" : "No";
System.out.println("Has made a distinction : " + distinction);
}
}
在上面的程式中,marks>70 是 if 條件。? 是 then 子句,而:是 else 的一部分。
程式應評估標記是否超過某個預定義的數字。由於條件 marks > 70 被評估為 false,因此 No 被列印在控制檯輸出上。
上面程式的輸出如下。
Has made a distinction: No
Java 8 中使用 filter 的單行 if-else 語句
Java 8 和更高版本具有流實用程式。在 Java 語言中,流 filter 方法採用 Predicate,其行為類似於 if-else。
package streams;
import java.util.Arrays;
import java.util.List;
public class Java
8Streams {
public static void main(String[] args) {
List<String> stringList = Arrays.asList("1", "2");
stringList.stream().filter(string -> string.equals("1")).forEach(System.out::println);
}
}
上面的程式使用 Arrays.asList() 方法例項化一個列表。在這裡,我們給出了 1 和 2 作為字串值。現在,我們使用 stream 函式建立了此列表的流。建立流後,將應用 filter 函式。此函式根據定義的條件過濾資料。-> 運算子稱為 lambda 運算子。在 filter 函式中迭代流的每個值。如果滿足條件,則該值將轉到 forEach() 方法以執行最終操作。
由於未定義任何情況來處理其他情況,因此該值將被簡單地繞過並將被丟棄。
上面程式的輸出如下:
1