1

加算は正常に機能しますが、減算はマイナスになります。考えられるさまざまなロジックを試しましたが、適切なものが見つかりませんでした。最初の 2 つの入力とマイナス ボタンで適切な解決策が得られます。この解決策を 3 番目の入力で減算に使用すると、本来の方法では発生しません。数字を入力するための 0 ~ 9 ボタンがあります。以下のメソッドをトリガーする 1 つのプラス-(IBAction)adding:(id)sender;ボタンと、これをトリガーする 1 つのマイナスボタン。 -(IBAction)subtract:(id)sender; 主な機能をトリガーするための equals ボタン -(IBAction)equals:(id)sender; は、subtract メソッドと main equals メソッドに追加されます。以下は、関数実装のコード、つまり.mファイルです。

int eq;

@implementation ViewController

@synthesize temp = _temp;
@synthesize inputField = _inputField;
@synthesize outputField = _outputField;

-(IBAction)adding:(id)sender
{
  self.temp = self.input + self.output;
  self.input = 0;
  eq = 0;

}

-(IBAction)subtract:(id)sender
{
  self.temp = self.input - self.output;
  self.input = 0;
  eq = 1;
}

-(IBAction)digits:(id)sender
{
  UIButton *b = (UIButton *)sender;
  self.input = self.input * 10 + b.tag;
  [self showInput];
}

-(IBAction)clear:(id)sender
{
  self.input = 0;
  [self showInput];
  self.output = 0;
  [self showOutput];
}

-(IBAction)clearE:(id)sender
{
  self.input = self.input * 0.1;
  [self showInput];
}

-(IBAction)equals:(id)sender
{
  if (eq == 0) {
    self.output = self.temp + self.input;
    self.temp = 3;
  }
  if (eq ==1)
  {
    self.output = self.temp - self.input;
    self.temp = 3;
  }
  [self showOutput];
  self.input = 0;
  [self showInput];
}

-(void)showInput
{
  self.inputField.text = [NSString stringWithFormat:@"%lld", self.input];
}

-(void)showOutput
{
  self.outputField.text = [NSString stringWithFormat:@"%lld", self.output];
}

- (void)viewDidLoad
{
  [super viewDidLoad];
  self.inputField.text = [NSString stringWithFormat:@"%lld",self.input];
  self.outputField.text= [NSString stringWithFormat:@"%lld", self.output];
}

- (void)didReceiveMemoryWarning
{
  [super didReceiveMemoryWarning];
  // Dispose of any resources that can be recreated.
}

@end

.hファイルは次のとおりです。

@interface ViewController : UIViewController

@property (nonatomic,readwrite,weak) IBOutlet UILabel *inputField;
@property (assign,readwrite,) unsigned long long input;
@property(assign,readwrite) unsigned long long temp;
@property (nonatomic,readwrite,weak) IBOutlet UILabel *outputField;
@property (assign,readwrite) unsigned long long output;

-(IBAction)digits:(id)sender;
-(IBAction)adding:(id)sender;
-(IBAction)subtract:(id)sender;
-(IBAction)clear:(id)sender;
-(IBAction)clearE:(id)sender;
-(IBAction)equals:(id)sender;
@end
4

0 に答える 0