否则如果条件概念

时间:2015-05-28 06:36:07

标签: ios objective-c if-statement

我需要检查两个字符串,如果这些字符串包含任何特定的字符串

 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条件有效。

4 个答案:

答案 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的值每次执行只有一个。