2013-10-04 54 views
0

我得到了“预期的表达式”错误,但找不到原因?已经评论了错误信息,并省略了Calculator .h,.m文件。获取期望的表达式错误

#import <Foundation/Foundation.h> 
#import "Calculator.h" 

int main(int argc, const char * argv[]) 
{ 

    @autoreleasepool { 
     double value1, value2; 
     char operator; 
     Calculator *deskCalc = [[Calculator alloc]init]; 

     NSLog(@"Type in your expression."); 
     scanf("%lf %c %lf", &value1, &operator, &value2); 

     [deskCalc setAccumulator:value1]; 
     if (operator == '+') { 
      [deskCalc add: value2]; 
      else if (operator == '-') // Expected expression 
      [deskCalc substract:value2]; 
      else if (operator == '*') // Expected expression 
       [deskCalc multiply:value2]; 
      else if (operator == '/') // Expected expression 
       [deskCalc divide:value2]; 

      NSLog(@"%.2f", [deskCalc accumulator]); 
     } 



    } 
    return 0; 
} 
+1

看看你有你的'{}'字符。 (一致的缩进,并总是使用'{}'为if/else语句将帮助很多。) –

+0

好吧,明白了。谢谢。 – pdenlinger

回答

3

您正在将else if条件放在与原始if相同的表达式块内。您需要移除您的if (operator == '+')区块上的大括号。

+1

嗯,没有。他需要去除if条件后面的'{'大括号,否则添加匹配的'}',但删除parens将无济于事。 –