如何减少这些if-conditionals的嵌套?

时间:2012-05-03 19:26:17

标签: objective-c logic conditional

我有一点问题:D 我找不到合适的搜索词,所以我写了这个问题。 我怎么这么短?我知道这个逻辑||但我怎么能在一行中添加超过1个? 谢谢你的时间 最好的祝福 约翰

    bool b = [self NSStringContains:convert contains:@"Input"];
    if (b ==true)
    {
           bool b = [self NSStringContains:convert contains:@"Output"]; 
           if (b ==true)
           {
                     bool b = [self NSStringContains:convert contains:@"statecheck"]; 
                     if (b ==true)
                     {
                     ....
                     }
           }
     }

2 个答案:

答案 0 :(得分:6)

在这种情况下,您似乎需要&&

if ([self NSStringContains:convert contains:@"Input"] &&
    [self NSStringContains:convert contains:@"Output"] &&
    [self NSStringContains:convert contains:@"statecheck"])
{
   ...
}

对于它的价值,给定bool b;if (b==true)总是多余的 - 只需使用if (b)

答案 1 :(得分:2)

可能是这样的:

bool hasInput = [self NSStringContains:convert contains:@"Input"];
bool hasOutput = [self NSStringContains:convert contains:@"Output"];
bool hasStatecheck = [self NSStringContains:convert contains:@"statecheck"];
if (hasInput && hasOutput && hasStatecheck)
{
}

你正在使用的是,“如果这个条件,那么检查这个条件,这个条件”,等等。你可以把这些与逻辑AND放在一起,用&&表示。