Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 什么是“的长版本?”;块[i][j].isColorBox()?pieceColor:backgroundColor;?_Java_C++_Syntax_If Statement - Fatal编程技术网

Java 什么是“的长版本?”;块[i][j].isColorBox()?pieceColor:backgroundColor;?

Java 什么是“的长版本?”;块[i][j].isColorBox()?pieceColor:backgroundColor;?,java,c++,syntax,if-statement,Java,C++,Syntax,If Statement,我读过这行代码:blocks[I][j].isColorBox()?pieceColor:backgroundColor我想知道它的if语句对应物是什么。或者如果它真的是一个if语句。我是编程新手,我还在学习这门语言。谢谢大家! 这有点像(取决于你对结果做了什么) e、 g.如果是作业,那么 a = b ? c : d; 就像 if(b) { a = c; } else { a = c; } 根据规范 条件运算符?:使用一个表达式的布尔值决定应计算其他两个表达式中的哪一个 那么,

我读过这行代码:
blocks[I][j].isColorBox()?pieceColor:backgroundColor
我想知道它的
if
语句对应物是什么。或者如果它真的是一个
if
语句。我是编程新手,我还在学习这门语言。谢谢大家!

这有点像(取决于你对结果做了什么)

e、 g.如果是作业,那么

a = b ? c : d;
就像

if(b) {
   a = c;
} else {
   a = c;
}
根据规范

条件运算符?:使用一个表达式的布尔值决定应计算其他两个表达式中的哪一个


那么,
b?c:d
类似于一个表达式,如果第一个表达式的计算结果
b
为真,则该表达式的计算结果将是第二个表达式的计算结果,否则,它是口渴表达式
d

的计算结果,如果您在方法末尾返回颜色值,则可以使用以下方法:

if (blocks[i][j].isColorBox()) {
    return pieceColor;
} else {
    return backGroundColor;
}
或者,如果要将颜色值指定给变量:

if (blocks[i][j].isColorBox()) {
    someVariable = pieceColor;
} else {
    someVariable = backGroundColor;
}
无论哪种方式,a的“长”版本(也称为三元运算符,形式为
?:
)将使用
if/else
,并对值进行处理。请注意,
if/else
和条件表达式之间的根本区别在于前者是一个没有值的语句,而后者是一个计算其操作数值的表达式。

是,它有点类似于
if
-语句。基本上

bool ? a : b
表示“如果
bool
为真,则使用值
a
,否则使用值
b
”。就你而言:

blocks[i][j].isColorBox() ? pieceColor : backgroundColor
表示“如果
阻止[i][j].isColorBox()
为真,则使用
pieceColor
,否则使用
backgroundColor


因此,以下内容通常是等效的:

n = blocks[i][j].isColorBox() ? pieceColor : backgroundColor


有趣的是,
if/else
作为语句而不是表达式是一种任意的设计选择。例如,Scala只有Java的
?:
表达式,但它的拼写是
if/else
:),也就是说,在Scala中,可以说
someVariable=if(blocks[i][j].isColorBox())partecolor else backGroundColor
n = blocks[i][j].isColorBox() ? pieceColor : backgroundColor
if (blocks[i][j].isColorBox()) 
    n = pieceColor;
else 
    n = backgroundColor;