计算器大脑演练减去操作

时间:2012-10-06 15:50:54

标签: iphone objective-c cs193p

我一直在使用斯坦福视频作为学习iOS编程的工具。我对“ - ”操作有疑问。演练解释说,对于这部分代码,操作数的顺序必须正确。我不知道这段代码如何确保操作顺序。这是做什么的?

else if ([operation isEqualToString:@"-"]) {
double subtrahend = [self popOperand];
result = [self popOperand] - subtrahend;

我得到第一行代码芽我不明白最后两行。如何将一个double加入subtrahend变量并将其设置为等于popOperand以确保操作顺序,然后从[self popOperand]中减去减数?

2 个答案:

答案 0 :(得分:0)

他们所说的只是你需要确保在减数之前弹出减数因为它们被放置在堆栈上的顺序,否则你会得到错误的结果。

简单地说,5 - 3!= 3 - 5

答案 1 :(得分:0)

使用NSLog在每个中间步骤输出一条有用的消息,这里显而易见的是。在许多情况下有用的技术。

考虑这个问题的另一种方法是你要从堆栈中的第二件事中减去堆栈中的第一件事。或者如果您愿意,可以这样表达操作:

    result = - [self popOperand] + [self popOperand];

它可能会起作用,但当然这是假设最左边的popOperand正在执行。