今天是九月六日。来到蓝懿的第十四天。刘老师没有今天没有讲新课 ,而是带领我们做了一个高级版计算器。前两天我也做过两版简单的计算器。但今天听了老师的讲解,发现自己曾经的代码有许多过于繁琐的地方。很多知道改进的地方。还有就是发现前两天讲得代码已经有些淡忘了。例如如何替换数组中的数据 和如何拼接改变字符串。而今天收获的最大的就是如何实现优先级的计算。
for (int i=0; i<self.operators.count; i++) {
NSString *operator = self.operators[i];
if ([operator isEqualToString:@"×"]||[operator isEqualToString:@"÷"]) {
float number1 = [self.numbers[i] floatValue];
float number2 = [self.numbers[i+1] floatValue];
float result = 0;
if ([operator isEqualToString:@"×"]) {
result = number1 * number2;
}else{
result = number1/number2;
}
//把两个运算的数 删除 把结果插入回去
[self.numbers removeObjectAtIndex:i];
[self.numbers removeObjectAtIndex:i];
[self.numbers insertObject:@(result) atIndex:i];
//删除当前的运算符
[self.operators removeObjectAtIndex:i];
//为了保证数组中每一个符号都遍历出来
i--;
}
}
还有就是今天在做老师留的作业时发现有许多细节处理的不好 ,找bug浪费了很久时间。以后一定会改进。