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>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
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