gpt4 book ai didi

ios - If 语句短路 - 如何评估

转载 作者:行者123 更新时间:2023-11-29 13:15:42 27 4
gpt4 key购买 nike

更新:这完全是徒劳的。在我根据建议的答案进行更改后,它起作用了。但是,当我稍后尝试时,它又没有用了。我逐渐意识到,这完全取决于我如何使用调试器。我在 areSameColor 中有一个断点。我假设在单步执行代码时没有执行 areUniqueColors。但是,我正在跨过第二个条件,我认为它是短路的。最后,它正确地评估了下面的两个选项。我选择坚持我的第二个例子,因为它看起来更具可读性。感谢大家的宝贵时间。

我对以下 if 语句的计算方式感到困惑...

    if(![self areSameColor:setCards] && ![self areUniqueColors:setCards]){
match = NO;
}

在我的测试用例中 [self areSameColor:setCards] 评估为 NO...所以使用 !我希望它能评估第二个条件。看调试器的时候,好像是捷径到 TRUE 的结果。

我也试过这个:

if(!([self areSameColor:setCards] || [self areUniqueColors:setCards])){
match = NO;
}

在这两种情况下,它都不会评估第二个条件。 areSameColor 和 areUniqueColor 返回 BOOL。

我的预期评价...

areSameColor | areUniqueColor | MATCH
NO | NO | match = NO
YES | NO | match UNCHANGED
NO | YES | match UNCHANGED

我怎么想错了?

最佳答案

对于这个“areSameColor == NO and areUniqueColor == NO”试试这个方法

if( (![self areSameColor:setCards]) && (![self areUniqueColors:setCards]) )
{
match = NO;
}

关于ios - If 语句短路 - 如何评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15871419/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com