Java 單行 if 語句

Rashmi Patidar 2023年10月12日
  1. Java 三元運算子
  2. Java 8 中使用 filter 的單行 if-else 語句
Java 單行 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>70if 條件。?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
作者: Rashmi Patidar
Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn

相關文章 - Java Statement