我有一个功课,我需要制作一个基本的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 = *)。
答案 0 :(得分:4)
等式测试是双==
,并且字符需要用单引号括起来,所以:
Cal.op == '+'
答案 1 :(得分:0)
条件语句(三元语句)需要布尔值作为输出来识别真或假的条件。所以在你的情况下
String operacion = (Cal.op == '+') ? "suma" : (Cal.op == '-') ? "resta":(Cal.op == '*') ? "multiplicacion" : "division";
答案 2 :(得分:0)
三元运算符需要返回true或false状态的条件语句。 所以你需要使用==将它与一个用单引号括起来的字符进行比较。
Cal.op == '+'