質問

int qempty()
{
    return (f == r ? 1 : 0);
}

上記のスニペットでは、「?" 平均?それを何に置き換えることができますか?

役に立ちましたか?

解決

これは一般に次のように呼ばれています 条件演算子, そして次のように使用すると:

condition ? result_if_true : result_if_false

...もし condition と評価される true, 、式は次のように評価されます。 result_if_true, 、それ以外の場合は次のように評価されます。 result_if_false.

それは 糖衣構文, この場合、次のように置き換えることができます。

int qempty()
{ 
  if(f == r)
  {
      return 1;
  } 
  else 
  {
      return 0;
  }
}

注記: 参考にする人もいます ?: それを「」として三項演算子"、これが唯一の三項演算子であるためです (つまり、3 つの引数を取る演算子) を使用している言語で記述します。

他のヒント

これは三項演算子であり、基本的にはインライン if ステートメントです。

x ? y : z

のように機能します

if(x) y else z

ただし、ステートメントの代わりに式を使用します。したがって、より複雑なステートメントの途中で使用できます。

これは簡潔なコードを書くのに便利ですが、保守が難しいコードを作成するために多用される可能性があります。

次のように書き換えることができます。

int qempty(){ return(f==r);}

これは他の回答で述べたのと同じことを行います。

それはと呼ばれています 条件演算子.

これは次のように置き換えることができます。

int qempty(){ 
    if (f == r) return 1;
    else return 0;
}

それは条件演算子です。

?b :c

IF/THEN/ELSEのショートカットです。

手段:a が true の場合は b を返し、そうでない場合は c を返します。この場合、f==r の場合は 1 を返し、それ以外の場合は 0 を返します。

これを見た場合は、次の点に注意してください。

a = x ? : y;

これは標準に対する GNU 拡張です (「 https://gcc.gnu.org/onlinedocs/gcc/Conditionals.html#Conditionals).

それは同じです

a = x ? x : y;

疑問符は条件演算子です。このコードは、f==r の場合は 1 が返され、それ以外の場合は 0 が返されることを意味します。コードは次のように書き換えることができます

int qempty()
{
  if(f==r)
    return 1;
  else
    return 0;
}

これはおそらく最もきれいな方法ではありませんが、理解に役立つことを願っています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top