返回z< 0? z + y:z是什么意思?

时间:2016-07-29 17:12:58

标签: c

我遇到了一种不同的方式来回归价值并且兴奋不已。 它究竟意味着什么?

如果我不得不猜测,我会说它意味着...... 如果z < 0,然后添加z和y,否则返回z?

int ffunction(int x, int y)
{
    int z = x % y;
    return z < 0 ? z + y : z;
}

6 个答案:

答案 0 :(得分:4)

您正在使用ternary operator并返回结果。它基本上是一行中的if语句。它说:

if(z < 0)
{
    return z + y;
}
else
{
    return z;
}

答案 1 :(得分:3)

?:是一个三元运算符(一个有三个操作数的运算符),称为条件运算符。根据第一个(z + y)是真还是假,执行第二个(z)或第三个操作数(z < 0)。因此,

return z < 0 ? z + y : z;

相当于

if (z < 0) {
   return z + y;
} else {
   return z;
}

答案 2 :(得分:2)

问题中的代码与:

相同
int ffunction(int x, int y)
{
    int z = x % y;
    if(z < 0){
        return (z + y);
    }

    else{
        return z;
    }
}

在您的问题中,使用了三元运算符,这是一种紧凑的if语句。

答案 3 :(得分:2)

这是契约if的一种形式。基本上,它是这样说的:

if ( z < 0 )
    return z + y;
else
    return z;

答案 4 :(得分:1)

这意味着如果z低于零(也称为negetive),则返回z + y,如果不是这种情况(z为零或正数),则返回z本身。

相当于:

if ( z<0)
    return z+y;
else
    return z;

答案 5 :(得分:0)

条件运算符。如果z小于0,则函数返回z + y,否则返回z。