什么是"blocks [i] [j] .isColorBox()?pieceColor:backgroundColor"的长版本?

Sug*_*ice 6 c++ java syntax if-statement

我已经阅读了这行代码:blocks[i][j].isColorBox() ? pieceColor : backgroundColor我想知道它的if陈述是什么.或者,如果它真的是一个if声明.我是编程新手,我还在学习这门语言.谢谢!

Ósc*_*pez 2

如果您在方法末尾返回颜色值,则遵循以下原则:

if (blocks[i][j].isColorBox()) {
    return pieceColor;
} else {
    return backGroundColor;
}
Run Code Online (Sandbox Code Playgroud)

或者,如果您将颜色值分配给变量:

if (blocks[i][j].isColorBox()) {
    someVariable = pieceColor;
} else {
    someVariable = backGroundColor;
}
Run Code Online (Sandbox Code Playgroud)

无论哪种方式,条件表达式的“长”版本(也称为形式的三元运算符?:)将使用if/elseand 对值执行某些操作。请注意,条件表达式和条件表达式之间的根本区别在于,前者是没有值的if/else语句,而后者是计算结果为其操作数的值的表达式。