0

この次の else if では、最後の else 条件が実行されていませんか?

私を助けてください

if (Flag==1)
{
    ...
}
else if ([totalBooksId containsObject:currentbook])
{
    ...
}
else if (![totalBooksId containsObject:currentbook])
 {
    ...
} else {
    ...
}

すべての変数にはいくつかの値がありますが、それ以外は実行されていません。上記のelseステートメントはまったく実行されていませんか? 私を助けてください

4

3 に答える 3

0

else-if ブロックの最後の else がヒットしない場合、通常は次のいずれかを意味します。

  1. 最初の if 句または後続の else-if 句の条件の 1 つが true でした
  2. 評価された条件の 1 つがプログラム パスを変更しました (例外、スタックの破損など)。
  3. if-else ブロック全体のコードに到達しなかった

あなたの場合、else if条件の1つが別の条件の逆であるため、最初のケースのようです。

([totalBooksId containsObject:currentbook]) が true であるか、!([totalBooksId containsObject:currentbook]) が true です。最後の else をヒットするには、両方とも false でなければなりません。

于 2013-05-18T12:09:01.453 に答える