这个问题在这里已有答案:
我遇到了这种语法:
System.out.println(boolean_variable ? "print true": "print false");
这个语法有两个点:叫做?
我在哪里可以找到有关它的信息?
它是否仅适用于布尔值,还是以其他不同的方式实现?
它是if-else语句的简短形式 .
It works in this way
(yourCondition ? STATEMENT1 : STATEMENT2)
编译器检查条件 .
IF 它返回 TRUE 然后 STATEMENT1 将被执行 .
IF
TRUE
STATEMENT1
ELSE STATEMENT2 将被执行 .
ELSE
STATEMENT2
见here . 三元运算符类似于if表达式,但不同之处在于它是一个表达式 - 它有一个返回值,而if表达式则没有 . 有时你想用它来使你的代码变得更加混乱 .
它的三元运算符 .
三元运算符或?是if语句的简写 . 它可用于计算表达式并根据表达式的结果返回两个操作数之一 .
boolean b = true; String s = ( b == true ? "True" : "False" );
这将根据布尔值b的值设置String的值 . 这可以使用if else语句编写,如下所示:
boolean b = true; String s; if(b == true){ s = "True"; }else{ s = "False"; }
它是三元运算符,它与布尔值一起使用 . 在某些情况下,它可以用作if-else的简写,但不应该用于太复杂的事情,因为它很难阅读 .
一个例子是根据条件为变量赋值:
String message = doOperation() ? "Success" : "Error occurred"; System.out.println(message);
在这种情况下,如果doOperation返回一个告诉它是否成功的布尔值,则可以在一行上分配要显示的消息 .
请注意,此示例并不代表良好的编程习惯 .
对于你的问题:
?: (两个字符在一起)被称为条件运算符(或三元运算符) . 只有两者一起工作 .
?:
搜索java ternery运算符
它仅适用于布尔值
原则上,ternery操作员缩短了 if / else . boolean 将是if的条件, ? 和 : 之间的部分是 if 分支,此后的部分是 else 分支 .
if
else
boolean
?
:
请注意,条件运算符的返回类型由第一个分支决定 .
这是ternary operator(http://en.wikipedia.org/wiki/? :) . 当您需要一个小的 if 表达式时,它可以在任何地方使用 .
? : 是conditional operator . (它不仅仅是 : 部分 - 整个方法参数是示例中条件运算符的一种用法 . )
? :
它只是其性质的一个方面 - 有三个操作数 - 而不是它的名字 . 如果将另一个三元运算符引入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();
它是条件运算符,通常称为三元运算符,因为它有3个操作数:例如:
int foo = 10; int bar = foo > 5 ? 1 : 2; // will be 1 int baz = foo > 15 ? 3 : 4; // will be 4
因此,如果 boolean 表达式求值为 true ,它将返回第一个值(冒号前),否则返回第二个值(冒号后) .
true
你可以阅读Java Language Specification, Chapter 15.25 Conditional Operator ?中的细节
这是一个if语句 .
左边是什么?条件是什么,之间是什么?和:是条件为真的结果,如果条件为假,则结果是:结果是什么 .
它是一个三元运算符,意味着它不像其他许多运算符那样拥有两个操作数,而是有三个 . Wikipedia on Ternary Operation以及如何在Java中使用它 . 它归结为:评估布尔运算(或只是一个变量) . 如果计算结果为true,则运算符返回值/执行 : 之前的代码,否则执行后面的代码 .
问号后跟一个冒号(两个点)是一个三元运算符,通常称为内联if .
在这种情况下,它返回一个字符串,具体取决于boolean_variable的值 .
http://en.wikipedia.org/wiki/%3F:
11 回答
它是if-else语句的简短形式 .
It works in this way
编译器检查条件 .
IF
它返回TRUE
然后STATEMENT1
将被执行 .ELSE
STATEMENT2
将被执行 .见here . 三元运算符类似于if表达式,但不同之处在于它是一个表达式 - 它有一个返回值,而if表达式则没有 . 有时你想用它来使你的代码变得更加混乱 .
它的三元运算符 .
三元运算符或?是if语句的简写 . 它可用于计算表达式并根据表达式的结果返回两个操作数之一 .
这将根据布尔值b的值设置String的值 . 这可以使用if else语句编写,如下所示:
它是三元运算符,它与布尔值一起使用 . 在某些情况下,它可以用作if-else的简写,但不应该用于太复杂的事情,因为它很难阅读 .
一个例子是根据条件为变量赋值:
在这种情况下,如果doOperation返回一个告诉它是否成功的布尔值,则可以在一行上分配要显示的消息 .
请注意,此示例并不代表良好的编程习惯 .
对于你的问题:
?:
(两个字符在一起)被称为条件运算符(或三元运算符) . 只有两者一起工作 .搜索java ternery运算符
它仅适用于布尔值
原则上,ternery操作员缩短了
if
/else
.boolean
将是if的条件,?
和:
之间的部分是if
分支,此后的部分是else
分支 .请注意,条件运算符的返回类型由第一个分支决定 .
这是ternary operator(http://en.wikipedia.org/wiki/? :) . 当您需要一个小的
if
表达式时,它可以在任何地方使用 .? :
是conditional operator . (它不仅仅是:
部分 - 整个方法参数是示例中条件运算符的一种用法 . )它只是其性质的一个方面 - 有三个操作数 - 而不是它的名字 . 如果将另一个三元运算符引入Java,则该术语将变得模糊不清 . 它被称为条件运算符,因为它有一个条件(第一个操作数),然后它确定评估其他两个操作数中的哪一个 .
计算第一个操作数,然后根据第一个操作数是真还是假来评估第二个或第三个操作数...并且最终作为运算符的结果 .
所以这样的事情:
大致相当于:
重要的是它不评估其他操作数 . 例如,这很好:
它是条件运算符,通常称为三元运算符,因为它有3个操作数:例如:
因此,如果
boolean
表达式求值为true
,它将返回第一个值(冒号前),否则返回第二个值(冒号后) .你可以阅读Java Language Specification, Chapter 15.25 Conditional Operator ?中的细节
这是一个if语句 .
左边是什么?条件是什么,之间是什么?和:是条件为真的结果,如果条件为假,则结果是:结果是什么 .
它是一个三元运算符,意味着它不像其他许多运算符那样拥有两个操作数,而是有三个 . Wikipedia on Ternary Operation以及如何在Java中使用它 . 它归结为:评估布尔运算(或只是一个变量) . 如果计算结果为true,则运算符返回值/执行
:
之前的代码,否则执行后面的代码 .问号后跟一个冒号(两个点)是一个三元运算符,通常称为内联if .
在这种情况下,它返回一个字符串,具体取决于boolean_variable的值 .
http://en.wikipedia.org/wiki/%3F: