使用三元运算符在计算器上非法开始表达

时间:2016-08-30 06:34:13

标签: java

我有一个功课,我需要制作一个基本的Java计算器。问题是它需要使用三元运算符,我找不到编译代码的方法,我总是在这里或那里得到一个错误。目前我有4个错误,这是我迄今为止得到的最少的错误,但现在我无法找到使其工作的方法,我已经尝试了我能想到的一切,但它仍然无效。我想知道你是否可以把它检查出来。

class PpalCal
{
    char operacion;

    public static void main(String arg[])
    {
        Calculadora Cal;
        Cal=new Calculadora();
        Cal.v1=Float.parseFloat(arg[0]);
        Cal.v2=Float.parseFloat(arg[1]);
        Cal.op=Character.parseCharacter(arg[2]);
        {
            String operacion = (Cal.op = +) ? "suma" : 
            (Cal.op = -) ? "resta" : 
            (Cal.op = *) ? "multiplicacion" : "division";
            if (operacion.equals("suma"))
            {
                System.out.println("La suma es :"+Cal.sumar());
            }
            else
            {
                if (operacion.equals("resta"))
                {
                    System.out.println("La resta es :"+Cal.restar());
                }
                else
                {
                    if (operacion.equals("multiplicacion"))
                    {
                        System.out.println("La multiplicacion es :"+Cal.multiplicar());
                    }
                    else
                    {
                        System.out.println("La division es :"+Cal.dividir());
                    }
                }
            }
        }
    }
}

我收到一个错误,告诉我第13行和第14行有一个非法的表达式开头,其右括号为(Cal.op = +)和(Cal.op =&gt ;-),两个错误告诉我我在第15行也一样,但现在使用星号>以及(Cal.op = *)。

3 个答案:

答案 0 :(得分:4)

等式测试是双==,并且字符需要用单引号括起来,所以:

Cal.op == '+'

答案 1 :(得分:0)

条件语句(三元语句)需要布尔值作为输出来识别真或假的条件。所以在你的情况下

            String operacion = (Cal.op == '+') ? "suma" : (Cal.op == '-') ? "resta":(Cal.op == '*') ? "multiplicacion" : "division";

答案 2 :(得分:0)

三元运算符需要返回true或false状态的条件语句。 所以你需要使用==将它与一个用单引号括起来的字符进行比较。

Cal.op == '+'