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