Objective-C中,有這三個Statement:
if
if (true){
do something;
}
當中假設有很多條件判斷時,使用 && (AND) || (OR) 作複合判斷,如果判斷有優先順序,用小括弧刮起來。
if (temperature > 0 && temperature < 100)
NSLog(@"目前狀態:液體")
if (temperature < 0 || temperature > 100)
NSLog(@"目前狀態不是液體")
條件如果不成立時,可以用else
if (條件判斷){
真
}else{
非
}
如果要做的事情只有一行,可以把大括號去掉,而 if 中還可以有 if
if (條件判斷一)
statement
else
if (條件判斷二)
statement
else
statement
複雜一點,有可能變這樣
if (條件判斷一)
statement1
else
if (條件判斷二)
statement2
else
if (條件判斷三)
statement3
else
statement4
這樣一直縮排下去,可讀性越來越差,你可以改成這樣,效果一樣
if (條件判斷一)
statement1
else if (條件判斷二)
statement2
else if (條件判斷三)
statement3
else
statement4
switch
當情況變成上述那樣時,就可以考慮用switch。
switch ( value)
{
case value1:
statement_A
.......
break;
case value2:
statement_B
.......
break;
case value3:
statement_C
.......
break;
case value4:
statement_D
.......
break;
default:
statement_Z
.......
break;
}
要注意的是value值只能用可以轉成int的型別,如果你要判斷的值無法轉時,試試看Enum。
enum Month{JAN=1,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC}; int main(int argc, const char * argv[]) { @autoreleasepool { enum Month thisMonth = OCT; switch (thisMonth) { case JAN: NSLog(@"一月"); break; case FEB: NSLog(@"二月"); break; case MAR: NSLog(@"三月"); break; case APR: NSLog(@"四月"); break; case MAY: NSLog(@"五月"); break; case JUN: NSLog(@"六月"); break; case JUL: NSLog(@"七月"); break; case AUG: NSLog(@"八月"); break; case SEP: NSLog(@"九月"); break; case OCT: NSLog(@"十月"); break; case NOV: NSLog(@"十一月"); break; case DEC: NSLog(@"十二月"); break; default: break; } } return 0; }
Conditional operator
condition ? expression1 : expression2
三元運算子用的好可以讓程式更簡潔,上面的condition 為True時,執行expression1,為False,則執行expression2,看個例子。
NSLog(@"%@", boolVar ? @"True" : @"False" );
可以快速列印出booVar 的值。