私は値を返す別の方法を見つけて興奮しました。 正確にはどういう意味ですか?返り値zは0ですか? z + y:zは平均ですか?
もし私が推測しなければならないのは、それが... の場合には何かを意味すると言うでしょう。もしz<ならば、zとyを加え、そうでなければzを返します。
int ffunction(int x, int y)
{
int z = x % y;
return z < 0 ? z + y : z;
}
私は値を返す別の方法を見つけて興奮しました。 正確にはどういう意味ですか?返り値zは0ですか? z + y:zは平均ですか?
もし私が推測しなければならないのは、それが... の場合には何かを意味すると言うでしょう。もしz<ならば、zとyを加え、そうでなければzを返します。
int ffunction(int x, int y)
{
int z = x % y;
return z < 0 ? z + y : z;
}
あなたはternary operatorを使用して、その結果を返します。これは、基本的に1つの行にあるif文です。それは言っている:
if(z < 0)
{
return z + y;
}
else
{
return z;
}
ありがとう!その言葉を聞くのは初めてのことです。 – ricky162
z
がゼロ(別名negetive)リターンZより低いY +であり、このケースではなかった場合、戻りZ自体(z
はゼロまたは正である)場合、それが意味します。コンパクトif
文の形である、三項演算子が使用されているあなたの質問に
int ffunction(int x, int y)
{
int z = x % y;
if(z < 0){
return (z + y);
}
else{
return z;
}
}
:問題の
if (z<0)
return z+y;
else
return z;
あなたのコードが同じである:
同等です。
?:
は条件演算子と呼ばれる3項演算子(3つのオペランドを持つ演算子)です。第2(z + y
)または第3オペランド(z
)は、最初のもの(z < 0
)が真か偽かに基づいて実行されます。このように、
return z < 0 ? z + y : z;
は
if (z < 0) {
return z + y;
} else {
return z;
}
これはコンパクトif
の形態であることと等価です。 Basiclyは、それを言っている:
if (z < 0)
return z + y;
else
return z;
3進演算子については、C言語の本またはチュートリアルで説明します。 –
「値を返す別の方法を見つけました」ここには「値を返す別の方法」はありません。 – AnT
@AnTここで言葉を選ぶのがベストではないかもしれません。返り値zのような単純なものを返す代わりに、私はそれを意味しました。これはもっと複雑に見えます。それで全部です。 – ricky162