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;