

以下の式のreturn以降の記法がわからなく困っています。

[code]

    private String fm(float value) {
        return (value <=0) ? ""+value : "+"+value;
    }
    
[/code]

if文の一種かな？とは思っているのですがどういう記法かこのコードが乗っていた本にはなにも解説がないため検索もできません。  
`?`以降が特にわかりませんので解説していただけると助かります。


CC BY-SA 4.0
2019-02-14T06:37:37.910
52769
2019-02-14T08:53:57.920
2019-02-14T06:42:19.643
3060
31098
question
java
if文の別記法？の意味を教えてください。


三項演算子といいます。

`(value <=0)?""+value:"+"+value` で一つのまとまりになり、

`(value <=0)`
が条件文で、真なら`?`と`:`で囲まれた部分（ここでは`""+value`）、偽なら`:`以降（ここでは`"+"+value`）が返ります。


CC BY-SA 4.0
2019-02-14T06:40:11.587
52770
2019-02-14T06:40:11.587
29826
52769
answer


Java仕様としては [15.25. Conditional Operator ?
:](https://docs.oracle.com/javase/specs/jls/se11/html/jls-15.html#jls-15.25) の
"conditional
operator"です。日本語だと[条件演算子](https://ja.wikipedia.org/wiki/%E6%9D%A1%E4%BB%B6%E6%BC%94%E7%AE%97%E5%AD%90)でしょうか。呼称として通りが良いのは[三項演算子](https://ja.wikipedia.org/wiki/%E4%B8%89%E9%A0%85%E6%BC%94%E7%AE%97%E5%AD%90)の方かもしれません。

次の`if`文と等価です。

[code]

    private String fm(float value) {
        if (value <=0) {
            return ""+value;
        } else {
            return "+"+value;
        }
    }
    
[/code]


CC BY-SA 4.0
2019-02-14T08:53:57.920
52776
2019-02-14T08:53:57.920
2808
52769
answer