简单的基本计算器多个添加

时间:2013-10-30 20:18:07

标签: ios iphone objective-c

我正在为iPhone制作一个非常基本的简单计算器。我正在使用GitHub中的示例代码并对其进行扩展。

https://github.com/teikenshi/xcode-calculator/tree/master/kadai06

这是我遇到的问题。如果我想将这些数字加在一起

2,5,6,8

使用当前代码,我必须按此顺序按下按钮

2 + 5 =

+ 6 =

+ 8 =

意思是我每次添加两个数字时都必须按下相等的按钮

我想做的是普通人如何添加数字,即他们将按下数字按钮并按此顺序点击加号按钮

2 + 5 + 6 + 8 (calculator keeps adding the numbers up and shows the addition results).

现在我承认这不是最优雅的代码,也不是最好的计算器代码,但是如果有人可以帮我解决这个问题,或者指向一个更好的示例计算器代码,那么我就全都开放了。

- (IBAction)plus:(id)sender
{
//what code logic should go in here. 
}

3 个答案:

答案 0 :(得分:0)

我只想提出更简单的方法.. 这是一个粗略的想法如何执行和'+'

1。通过在显示标签上附加字符串,只显示文本字段中的用户类型和“+”操作。

2. 当用户点击'='时,只需读回标签并根据设置的标签执行操作。

3. 执行此类计算

NSArray *subStrings = [displayLabel componentsSeparatedByString:@"+"];

double answer = 0;

for(NSString *value in subStrings)
{
   answer = answer + [value doubleValue];
}

答案 1 :(得分:0)

你可以这样做: 1.用户按下加号按钮,按钮将被镶边或任何你想给按钮的标志。 2.如果按下加号按钮,则在用户按下数字后等待数字(0 - 9),释放加号按钮并计算结果。并将其显示给用户。

即使用户未按下相等按钮,您也可以计算结果。

答案 2 :(得分:0)

您可以将计算器的运行结果存储在变量中,并针对不同的操作进行处理。也许为加号尝试这样的事情

@property (strong, nonatomic) NSString *result;
@property (weak, nonatomic) IBOutlet UILabel *calculatorDisplay;

- (IBAction)plus:(id)sender
  {
    if (!self.result) {
         self.result = self.calculatorDisplay.text;
    } else {
         // Otherwise we have to add the previous result to the current display
         double toAdd = [self.calculatorDisplay.text doubleValue];
         double current = [self.result doubleValue];
         double result = current + toAdd;
         self.result = [NSString stringWithFormat:@"%f", result];
    }
  }

然后可能在一个明确的IBAction中你将self.result重置为nil;