在其他情况下,如果,最后一个其他条件没有执行?
请帮帮我
if (Flag==1)
{
...
}
else if ([totalBooksId containsObject:currentbook])
{
...
}
else if (![totalBooksId containsObject:currentbook])
{
...
} else {
...
}
所有变量都有一些值,但还是没有执行。 上面的else语句根本没有执行?请帮帮我
答案 0 :(得分:1)
这将起作用
if(Flag==1){
if([OwnList containsObject:currentbook]){
if(fileExists) {
[self renameReadButton];
}else if(!fileExists){
[self renameDownloadButton];
}
[self renameLendButton];
}
}
else if([totalBooksId containsObject:currentbook]){
//Checking bought books
if([OwnList containsObject:currentbook]){
if(fileExists){
[self renameReadButton];
}else {
[self renameDownloadButton];
}
} else{
[self renameBuyButton];
}
}
else if(![totalBooksId containsObject:currentbook]) {
if([freeList containsObject:currentbook]){
if(fileExists){
[self renameReadButton];
}else{
[self renameDownloadButton];
}
} else{
[self renameBuyButton];
}
}
答案 1 :(得分:0)
如果else-if块上的最后一个没有被击中,通常意味着其中任何一个:
在你的情况下,它似乎是第一种情况,因为其中一个if条件与另一个条件相反。
要么([totalBooksId containsObject:currentbook])为真,要么!([totalBooksId containsObject:currentbook])为真。要击中最后的其他人,他们两个都必须是假的。
答案 2 :(得分:0)
你有三个陈述
else if([totalBooksId containsObject:currentbook]) // first
{
}
else if(![totalBooksId containsObject:currentbook]) // second
{
}
else { [self renameBuyButton]; } // last
不执行最后一条语句,因为第一条和第二条语句捕获所有可能的情况。
第一次捕获[totalBooksId containsObject:currentbook] == true
,第二次导弹[totalBooksId containsObject:currentbook] == false
并且没有第三种可能性。