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