我需要检查两个字符串,如果这些字符串包含任何特定的字符串
NSString *startLocationAddress = @"Any address for start location";
NSString *endLocationAddress = @"Any address for end location";
if ([startLocationAddress rangeOfString:@"Australia"].location == NSNotFound)
{
NSLog(@"string does not contain Australia");
startLocationAddress = [startLocationAddress stringByAppendingString:@",Australia"];
}
else if ([endLocationAddress rangeOfString:@"Australia"].location == NSNotFound)
{
NSLog(@"string does not contain Australia");
endLocationAddress =[endLocationAddress stringByAppendingString:@",Australia"];
}
else {
NSLog(@"string contain Australia");
}
因为我的两个字符串都不包含“Australia”。因此,首先检查第一个条件,如果第一个条件有效则退出条件,如果第一个条件无效则只检查else条件。通过这种方式,if else if条件有效。
答案 0 :(得分:4)
因为我的两个字符串都不包含“Australia”。首先,如果条件工作正常,它将“澳大利亚”附加到字符串,但如果条件不起作用,则为第二个
else if
块在执行相应的if
时如何执行?期望不合逻辑。
如果您希望else if
块也检查,请将其与主if
分开并开始新的if
条件,而不是else if
答案 1 :(得分:1)
你最好重建它,如:
if ([startLocationAddress rangeOfString:@"Australia"].location == NSNotFound)
{
//codes..
}
else
{
NSLog(@"startLocationAddress contain Australia");
}
if ([endLocationAddress rangeOfString:@"Australia"].location == NSNotFound)
{
//codes..
}
else
{
NSLog(@"endLocationAddress contain Australia");
}
并查看 如果 - 其他 - 其他 声明有效..请参阅:@ Hanky웃Panky回答这个问题,因为我们很容易产生混淆。
if (ifcondition)
{ .. }
else if (elseifcondition)
{ .. }
else
{ .. }
/*
if `ifcondition` == true, dont expect anything from `else-if` or `else`,
compiler won't care about them anymore. that goes with `else-if` and `else` as well..
*/
答案 2 :(得分:0)
在if-else if-else条件中,如果任何一个得到满足,它将忽略其余的条件。 这意味着如果First得到满足,那么它将忽略"否则if - else"。因此,你的第二个条件没有执行。
答案 3 :(得分:0)
您需要阅读基本的if else
执行逻辑。
以下是示例
int x=70;
string Grade;
IF (x > 90) THEN
Grade = "O"
ELSE IF (x > 80) THEN
Grade = "A"
ELSE IF (x > 70) THEN
Grade = "B"
ELSE IF (x > 60) THEN
Grade = "C"
ELSE
Grade = "F"
此处变量Grade
的值每次执行只有一个。