0

我正在做一个计算器,我定义了所有函数 SUM SUB DIV MUL

然后,当我输入这个 if 语句时,尽管条件错误,但只有第一个语句通过

所以我有 2 个文本字段
每个按钮有 4 个动作
2 个动作:结果和清除
以及操作的标签,它将采用 + 或 - 或 * 或 ÷ 任何...这个标签称为 Operation

我在计算操作中输入了这个 if 语句,但我不知道出了什么问题。当我点击计算操作将是第一个如果操作是 +

当我按 1 -4 它显示 1 + 4 = 5

 //in -(IBAction)calculate :

-(IBAction)Calculate:(id)sender{
if (operation.text=@"+"){
//sum
a =num1.text.integerValue;
b= num2.text.integerValue;
c=num1.text.integerValue+num2.text.integerValue;
printf("%i >> %i",b,num2.text.integerValue);
[num1 resignFirstResponder];
[num2 resignFirstResponder];
result.text =[NSString stringWithFormat:@"%i + %i = %i",a,b,c];}

 else if (operation.text=@"-"){
//sub
a =num1.text.integerValue;
b= num2.text.integerValue;
c=num1.text.integerValue-num2.text.integerValue;
printf("%i >> %i",b,num2.text.integerValue);
[num1 resignFirstResponder];
[num2 resignFirstResponder];
    result.text =[NSString stringWithFormat:@"%i - %i = %i",a,b,c];}

else if (operation.text=@"*"){
//mul
a =num1.text.integerValue;
b= num2.text.integerValue;
c=num1.text.integerValue*num2.text.integerValue;
printf("%i >> %i",b,num2.text.integerValue);
[num1 resignFirstResponder];
[num2 resignFirstResponder];
result.text =[NSString stringWithFormat:@"%i * %i = %i",a,b,c];
}

//div
else if (operation.text=@"÷"){
a =num1.text.integerValue;
b= num2.text.integerValue;
c=num1.text.integerValue/num2.text.integerValue;
printf("%i >> %i",b,num2.text.integerValue);
[num1 resignFirstResponder];
[num2 resignFirstResponder];
result.text =[NSString stringWithFormat:@"%i ÷ %i = %i",a,b,c];
}

 }
4

1 回答 1

1

=执行分配,所以if (operation.text=@"+")实际上分配@"+"operation.text,它不比较是否相等。if然后,该语句将分配的值视为真。

于 2012-09-09T18:44:00.370 回答