将if/else转换为三值运算符Java
我的函数setA()如下所示:将if/else转换为三值运算符Java,java,if-statement,conditional-operator,Java,If Statement,Conditional Operator,我的函数setA()如下所示: public double setA(){ double a; aField.getText() == null || aField.getText().trim().isEmpty() ? a = 1 : a = Double.parseDouble(aField.getText()); //a = aField.getText() == null || aField.getText().trim().isEmpty() ?
public double setA(){
double a;
aField.getText() == null || aField.getText().trim().isEmpty() ? a = 1 : a = Double.parseDouble(aField.getText());
//a = aField.getText() == null || aField.getText().trim().isEmpty() ? a = 1 : a = Double.parseDouble(aField.getText());
//return aField.getText() == null || aField.getText().trim().isEmpty() ? a = 1 : a = Double.parseDouble(aField.getText());
/*if(aField.getText() == null || aField.getText().trim().isEmpty())
a = 1;
else
a = Double.parseDouble(aField.getText());*/
return a;
}
我想去掉if/else,用三元运算符重写它。
这三个三元选项都不起作用,在构建过程中,它们显示出相同的错误:
java:意外类型
必需:变量
发现:价值
同时,注释的if/else块工作正常。
将TextField aField传递到函数中并完成此操作。在我看到建筑之前没有帮助
变量“a”可能尚未初始化
怎么了?试试这个:
a = (aField.getText() == null || aField.getText().trim().isEmpty())
? 1.0 : Double.parseDouble(aField.getText());
试试这个:
a = (aField.getText() == null || aField.getText().trim().isEmpty())
? 1.0 : Double.parseDouble(aField.getText());
看起来很不错,除了设置变量的方式
double a = <condition> ? <true> : <false>:
看起来很不错,除了设置变量的方式
double a = <condition> ? <true> : <false>:
三元尝试的问题在于,它们在语法方面没有得到纠正:
//a = aField.getText() == null || aField.getText().trim().isEmpty() ? a = 1 : a = Double.parseDouble(aField.getText());
对于Java语言规范():
15.25。条件运算符?:
条件运算符?:使用一个表达式的布尔值
决定应计算其他两个表达式中的哪一个
条件性压力:
条件性压迫
条件性压迫?表达式:条件表达
因此,在您的例子中是a=(条件表达式)?如果条件表达式
为真,则为'a'的值:如果条件表达式
为假,则为'a'的值
a = aField.getText() == null || aField.getText().trim().isEmpty()
? 1
: Double.parseDouble(aField.getText());
三元尝试的问题在于,它们在语法方面没有得到纠正:
//a = aField.getText() == null || aField.getText().trim().isEmpty() ? a = 1 : a = Double.parseDouble(aField.getText());
对于Java语言规范():
15.25。条件运算符?:
条件运算符?:使用一个表达式的布尔值
决定应计算其他两个表达式中的哪一个
条件性压力:
条件性压迫
条件性压迫?表达式:条件表达
因此,在您的例子中是a=(条件表达式)?如果条件表达式
为真,则为'a'的值:如果条件表达式
为假,则为'a'的值
a = aField.getText() == null || aField.getText().trim().isEmpty()
? 1
: Double.parseDouble(aField.getText());