Как и другие, я бы положил значения в таблицу, а затем просканировал таблицу. Таблица небольшая, вероятно, не стоит создавать еще одну эффективную структуру O (), например, дерево.
typedef struct {
float minPercent;
NSString *letterGrade;
} GradeRange
- (NSString *)letterGradeForPercentage:(float)percentage {
GradeRange ranges[] = {{.minPercent = 100, .letterGrade = @"A+"},
...
{.minPercent = 66.0, .letterGrade = @"D+"},
{.minPercent = 64.0, .letterGrade = @"D"}};
NSString *grade = nil;
for(NSInteger i = 0; !grade && i < (sizeof(ranges) / sizeof(ranges[0])); i += 1) {
if (percentage >= ranges[i].minPercent) {
grade = ranges[i].letterGrade;
}
}
return grade;
}