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