首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java: println中的布尔值(布尔值?"print true":"print false")

Java: println中的布尔值(布尔值?"print true":"print false")
EN

Stack Overflow用户
提问于 2013-07-04 20:41:34
回答 11查看 25.7K关注 0票数 15

我遇到了这样的语法:

代码语言:javascript
复制
System.out.println(boolean_variable ? "print true": "print false");

  • 这个有两个点的语法是什么:
  • 在哪里可以找到有关它的信息?
  • 它只适用于布尔值还是以其他不同的方式实现?
EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2013-07-04 20:45:07

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

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

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

所以就像这样:

代码语言:javascript
复制
int x = condition() ? result1() : result2();

大致相当于:

代码语言:javascript
复制
int x;
if (condition()) {
    x = result1();
} else {
    x = result2();
}  

重要的是,它不会计算另一个操作数。因此,例如,这是很好的:

代码语言:javascript
复制
String text = getSomeStringReferenceWhichMightBeNull();
int usefulCharacters = text == null ? 0 : text.length();
票数 55
EN

Stack Overflow用户

发布于 2013-07-04 20:45:51

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

代码语言:javascript
复制
int foo = 10;
int bar = foo > 5 ? 1 : 2; // will be 1
int baz = foo > 15 ? 3 : 4; // will be 4

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

您可以在Java Language Specification, Chapter 15.25 Conditional Operator ?中阅读详细信息

票数 20
EN

Stack Overflow用户

发布于 2013-07-04 20:44:05

它是一个三元运算符,这意味着它有三个操作数,而不是像许多其他运算符那样有两个操作数。Wikipedia on Ternary Operation以及如何在Java中使用它。归结为:计算布尔运算(或者仅仅是一个变量)。如果它的计算结果为true,则运算符返回值/执行:之前的代码,否则返回它之后的代码。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17470595

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档