繁体   English   中英

Java运算符“:”“?”

[英]Java operators “:” “?”

我不确定如何使用运算符:?

示例:方法末尾有这段代码

return row <= -1 || row == rows || col <= -1 || col == cols ? 
            false : lifeBoard[row][col];

如何将其拆分为if / else类型?

?: 三元运算符 )作为紧凑的if-else起作用:

if (row <= -1 || row == rows || col <= -1 || col == cols) {
        return false;
}
else {
    return lifeBoard[row][col];
}

之前有? ?条件? :如果条件为真,则返回结果;之后:如果条件为假,则返回结果。

这个:

return row <= -1 || row == rows || col <= -1 || col == cols ? 
            false : lifeBoard[row][col];

等效于此:

if (row <= -1 || row == rows || col <= -1 || col == cols) {
    return false;
} else {
    return lifeBoard[row][col];
}

三元运算符?:的语法是:

? :

就像if / else一样,但是可以在return语句或类似语句内使用:

return (x != null ? x : "null");

如果/其他版本:

if (row <= -1 || row == rows || col <= -1 || col == cols) {
    return false;
} else {
    return lifeBoard[row][col];
}

这是语法:

<boolean expression> ? <value if true> : <value if false>

boolean myBool = getMyBool();
String myStr = myBol ? "myBol is true" : "myBol is false";
System.out.println(myStr);

这是一个三元操作。 所以举个例子

minVal = (a < b) ? a : b;

将与

if(a < b) {
    minVal = a;
}
else {
    minVal = b;
}

它是一个条件运算符,也称为三元运算符。 它只是if else语句的紧凑形式,其中您不必单独使用if和else。

运作方式如下...

“?”-在“?”之前写的任何东西? 是条件

“:”-如果在“?”之前提到的条件,则选择在“:”之前写的任何内容作为结果。 是真的

如果在“?”之前提到的条件,则选择“:”之后写的任何内容作为结果。 是假的

这是这样的...

因此,可以很容易地将给定代码拆分为if / else,如下所示:

    if (row <= -1 || row == rows || col <= -1 || col == cols) {
        return false;
    }
    else {
        return lifeBoard[row][col];
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM