Joe*_*oey 1 iphone xcode if-statement objective-c switch-statement
哪种结构更适合这种情况,if-else或switch?
- (id)hexEvaluator:(double)remainder
{
if(remainder == 0) {return [NSNumber numberWithInt:0];}
else if(remainder == 1) {return [NSNumber numberWithInt:1];}
else if(remainder == 2) {return [NSNumber numberWithInt:2];}
else if(remainder == 3) {return [NSNumber numberWithInt:3];}
else if(remainder == 4) {return [NSNumber numberWithInt:4];}
else if(remainder == 5) {return [NSNumber numberWithInt:5];}
else if(remainder == 6) {return [NSNumber numberWithInt:6];}
else if(remainder == 7) {return [NSNumber numberWithInt:7];}
else if(remainder == 8) {return [NSNumber numberWithInt:8];}
else if(remainder == 9) {return [NSNumber numberWithInt:9];}
else if(remainder == 10) {return @"A";}
else if(remainder == 11) {return @"B";}
else if(remainder == 12) {return @"C";}
else if(remainder == 13) {return @"D";}
else if(remainder == 14) {return @"E";}
else if(remainder == 15) {return @"F";}
else return nil;
switch ((int)remainder)
{
case 0: return [NSNumber numberWithInt:0]; break;
case 1: return [NSNumber numberWithInt:1]; break;
case 2: return [NSNumber numberWithInt:2]; break;
case 3: return [NSNumber numberWithInt:3]; break;
case 4: return [NSNumber numberWithInt:4]; break;
case 5: return [NSNumber numberWithInt:5]; break;
case 6: return [NSNumber numberWithInt:6]; break;
case 7: return [NSNumber numberWithInt:7]; break;
case 8: return [NSNumber numberWithInt:8]; break;
case 9: return [NSNumber numberWithInt:9]; break;
case 10: return @"A";; break;
case 11: return @"B";; break;
case 12: return @"C";; break;
case 13: return @"D";; break;
case 14: return @"E";; break;
case 15: return @"F";; break;
default: return nil; break;
}
}
Run Code Online (Sandbox Code Playgroud)
另外,在旁注:为什么切换表达式(在我的情况下为余数)不允许是'double'类型?我不得不把它转换成'int'来编译它.
绝对是一个if语句.我会摆脱所有额外的线条:
- (id)hexEvaluator:(double)remainder
{
if (remainder < 10)
{
return [NSNumber numberWithInt:(int)remainder];
}
else if (remainder < 16)
{
return [NSString stringWithFormat:@"%X", (int)remainder)];
}
return nil;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
244 次 |
| 最近记录: |