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