我正在阅读《Objective-C 编程》第四版。作者:史蒂芬·G·科尚 (Stephen G. Kochan)书中有一个为 iPhone 创建计算器应用程序的示例代码。我理解代码,至少90%。 - 有一个 Fraction 类,它具有存储分数对象的方法,并描述如何执行不同的基本分数算术运算 - 除此之外,还有一个计算器类,它根据用户是否尝试求和、除法等来运行 Fraction 类中的适当方法。
当用户在界面中按下数字时, View Controller 具有以下方法:
-(IBAction)clickDigit:(UIButton *)sender {
int digit = sender.tag; //sender or the argument inthis case is the button
[self processDigit:digit];
}
如您所见,现在调用此方法:
-(void) processDigit:(int)digit {
currentNumber = currentNumber * 10 + digit;
[displayString appendString:
[NSString stringWithFormat:@"%i", digit]];
display.text = displayString;
}
我唯一的问题(可能也是答案最简单的问题)是:为什么 currentNumber 总是乘以 10?当编译器进入上述方法时,currentNumber 的值始终为 0(我使用 XCode 中的调试器验证了这一点),所以我不明白为什么我们甚至必须将其乘以 10。我确实删除了该乘法,结果不正确,我只是不明白为什么。
谢谢
最佳答案
也许思考这个问题的最好方法是举个例子。
假设用户按顺序单击了以下数字:1、2。然后,假设代码正常工作,currentNumber
的数值应为 12。
现在想象用户接下来点击“3”。现在您希望该值为 123。您可以通过将先前的值 (12) 乘以 10,然后加上 3 来获得此值。如果他们随后单击“4”,则该值应变为 1,234,这是通过 10 实现的* 123 + 4。依此类推。
关于objective-c - objective-c : calculator app - currentNumber = currentNumber * 10 + digit;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11279483/