-3

次のコードが で何をしているのか理解できませんs:

 if(!s--)

sですint

4

2 に答える 2

3

実際、それは誤解を招くものです。

あなたがテストしているsのは 0 とは異なります (with if (!s))。その後、結果がどうであれ、それを減らしています。

つまり、2 つの異なる操作です。このように書くことができます:

if (!s)
{
     s--;
     //...
}
else
{
     s--;
}
于 2014-12-05T10:40:50.323 に答える
2

!negation演算子と呼ばれます。論理演算子です。

こちらのウィキペディアのエントリを参照してください。

if(!s--)

実行する順番

  1. sis0か notの値をチェックします。sisの場合0if条件は [オペレーターのおかげで!] 成功、そうでない場合は失敗です。
  2. その後、s1単位減分します。
  3. 条件の評価に基づいてif、実行を続行します [if条件付きのコード、または次のコード ブロック]。
于 2014-12-05T10:39:11.903 に答える