Java: boolean in println (boolean ?“打印真”:“打印假”)

2022-09-03 08:20:19

我遇到了这个语法:

System.out.println(boolean_variable ? "print true": "print false");
  • 这个语法是什么,有两个点:called?
  • 在哪里可以找到有关它的信息?
  • 它是否仅适用于布尔值,还是以其他不同方式实现?

答案 1

? :条件运算符。(这不仅仅是部分 - 方法参数的整个是示例中条件运算符的一种用法。:

它通常被称为三元运算符,但这只是其性质的一个方面 - 有三个操作数 - 而不是它的名字。如果另一个三元运算符被引入Java,这个术语将变得模棱两可。它被称为条件运算符,因为它有一个条件(第一个操作数),然后确定计算其他两个操作数中的哪一个。

计算第一个操作数,然后根据第一个操作数是真还是假来评估第二个第三个操作数。这最终成为操作员的结果。

所以像这样:

int x = condition() ? result1() : result2();

大致相当于:

int x;
if (condition()) {
    x = result1();
} else {
    x = result2();
}  

重要的是,它评估其他操作数。例如,这很好:

String text = getSomeStringReferenceWhichMightBeNull();
int usefulCharacters = text == null ? 0 : text.length();

答案 2

它是条件运算符,通常称为三元运算符,因为它有 3 个操作数:例如:

int foo = 10;
int bar = foo > 5 ? 1 : 2; // will be 1
int baz = foo > 15 ? 3 : 4; // will be 4

因此,如果表达式的计算结果为 ,它将返回第一个值(在冒号之前),否则返回第二个值(在冒号之后)。booleantrue

您可以阅读 Java 语言规范第 15.25 章“条件运算符中的详细说明?