如果这个if语句没有传递的原因

时间:2012-09-09 18:35:36

标签: ios4 xcode4.4

我正在制作一个计算器

我定义了所有函数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];
}

 }

HELP

1 个答案:

答案 0 :(得分:1)

=执行分配,因此if (operation.text=@"+")实际上会将@"+"分配给operation.text,但不会比较相等性。然后,if语句将指定的值视为true。