不能打破如果在目标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
来强制执行下一次循环运行。
你可以使用我的代码显示它吗? – shamila
@ S.Sallay只是改变'break'到'continue;' – Joshua