不能打破如果在目标C

问题描述:

条件我有一个for循环,并且如果条件如下,不能打破如果在目标C

for (snapshot in snapshot.children) 
     { 
      if([entirePlBtnChecked isEqual: @"Yes"]){ 
       if([snapshot.value[@"leaseType"] intValue] == 2){ 
        [self.allSnapshot addObject:snapshot]; 
       } 
      } 
      if([hdbApartmntChecked isEqual: @"Yes"]){ 
       if([snapshot.value[@"housingType"] intValue] == 0){ 
        [self.allSnapshot addObject:snapshot]; 
       } 
      } 
      if([condominiumBtnChecked isEqual:@"Yes"]){ 
       if([snapshot.value[@"housingType"] intValue] == 1){ 
        [self.allSnapshot addObject:snapshot]; 
       } 
      } 
      if([landedHouseBtnChecked isEqual:@"Yes"]){ 
       if([snapshot.value[@"housingType"] intValue] == 2){ 
        [self.allSnapshot addObject:snapshot]; 
       } 
      } 
      if([commonRoomBtnChecked isEqual:@"Yes"]){ 
       if([snapshot.value[@"leaseType"] intValue] == 0){ 
        [self.allSnapshot addObject:snapshot]; 
       } 
      } 
      if([masterRoomBtnChecked isEqual:@"Yes"]){ 
       if([snapshot.value[@"leaseType"] intValue] == 1){ 
        [self.allSnapshot addObject:snapshot]; 
       } 
      } 
      if([entirePlaceChecked isEqual:@"Yes"]){ 
       if([snapshot.value[@"leaseType"] intValue] == 2){ 
        [self.allSnapshot addObject:snapshot]; 
       } 
      } 
     } 
     NSLog(@"%lu",(unsigned long)[self.allSnapshot count]); 
     NSLog(@"%@",self.allSnapshot); 
当我打印的阵列相同的对象是在阵列中重复两次

。如果快照值等于第二条件中提到的值,如果条件中第一条件内,我想打破if条件。至于一个例子,如果[snapshot.value [@“leaseType”] intValue] == 2是真的,那么这应该移动到下一个快照,而不是下一个条件。但是,当我以上述方式执行时,即使第一个if条件块为真,它也会检查下一个if条件块。所以我重复得到同一个对象。我试过下面,

for (snapshot in snapshot.children) 
     { 
      if([entirePlBtnChecked isEqual: @"Yes"]){ 
       if([snapshot.value[@"leaseType"] intValue] == 2){ 
        [self.allSnapshot addObject:snapshot]; 
        break; 
       } 
      } 
      if([hdbApartmntChecked isEqual: @"Yes"]){ 
       if([snapshot.value[@"housingType"] intValue] == 0){ 
        [self.allSnapshot addObject:snapshot]; 
        break; 
       } 
      } 
      if([condominiumBtnChecked isEqual:@"Yes"]){ 
       if([snapshot.value[@"housingType"] intValue] == 1){ 
        [self.allSnapshot addObject:snapshot]; 
        break; 
       } 
      } 
      if([landedHouseBtnChecked isEqual:@"Yes"]){ 
       if([snapshot.value[@"housingType"] intValue] == 2){ 
        [self.allSnapshot addObject:snapshot]; 
        break; 
       } 
      } 
      if([commonRoomBtnChecked isEqual:@"Yes"]){ 
       if([snapshot.value[@"leaseType"] intValue] == 0){ 
        [self.allSnapshot addObject:snapshot]; 
        break; 
       } 
      } 
      if([masterRoomBtnChecked isEqual:@"Yes"]){ 
       if([snapshot.value[@"leaseType"] intValue] == 1){ 
        [self.allSnapshot addObject:snapshot]; 
        break; 
       } 
      } 
      if([entirePlaceChecked isEqual:@"Yes"]){ 
       if([snapshot.value[@"leaseType"] intValue] == 2){ 
        [self.allSnapshot addObject:snapshot]; 
        break; 
       } 
      } 
     } 

从第一条件这打破了,如果条件甚至是第一个出现故障不能移动到第二。我得到阵列数为1,我应该得到2.

if没有break。它仅用于循环。

但是,在您的情况下,您可以使用continue来强制执行下一次循环运行。

+0

你可以使用我的代码显示它吗? – shamila

+2

@ S.Sallay只是改变'break'到'continue;' – Joshua