当前位置: 首页 > 面试题库 >

Java三元运算符(?:)无效;第二或第三操作数返回布尔值

金旺
2023-03-14
问题内容

有人可以告诉我为什么对三元运算符的使用不正确吗?操作数2和3返回布尔值。

public class Something {
...
private static final double REFERENCE_FRAME_MID_X = 0;
private static final double REFERENCE_FRAME_MID_Y = 0;

private boolean findInsideOrOutsideGeneralEllipse(Point2D destCirclePos) {
    List<Boolean> returnValue = new ArrayList<>();
    Point2D referenceFrameCenter = new Point2D.Double(REFERENCE_FRAME_MID_X, REFERENCE_FRAME_MID_Y);
    Ellipse2D insideAreaEllipse2D = getEllipse2D(referenceFrameCenter.getX(), referenceFrameCenter.getY(),
                                                    destCirclePos.distance(referenceFrameCenter));

    // doesn't work
    insideAreaEllipse2D.contains(destCirclePos) ? returnValue.add(true) : returnValue.add(false);

    // works
    if (insideAreaEllipse2D.contains(destCirclePos)) {
        returnValue.add(true);
    } else {
        returnValue.add(false);
    }
}
...
}

问题答案:

Java三元运算条件的用法应如下所示

result = testCondition ? value1 : value2

这是Java语言规范。

相等,关系和条件运算符

在下面的示例中,该运算符应读取为:“如果 someConditiontrue ,则将 value1 的值分配给result。否则,将
value2 的值分配给result



 类似资料:
  • 一、算术操作符 :+(加)、-(减)、*(乘)、/(除)、**(乘幂)、%(取余)、-(单目负) (1)乘幂的基数不能为负,如 (-5) ** 2.5 # error; (2)乘幂结果不能超出计算机表示的限制,如10 ** 999999 # error (3)取余的操作数如不是整数,四舍五入成整数后运算;运算符右侧不能为零 (4)单目负可用于变量: - $y ; # 等效于 $y * -1 二、整

  • 问题内容: 是否可以更改此: …对三元运算符? 问题答案: 好吧,中的行为就像这样…… …另一种看待它的方式… 你的问题有点含糊,我们必须在这里假设。 如果(且仅当)声明了一个返回值(,等。)-现在看来似乎没有做到这一点通过你的代码-那么你可以做到这一点… 如果callFunction(…)不返回值,那么你将无法使用三元运算符!就那么简单。你将使用不需要的东西。 请发布更多代码以清除所有问题 尽管

  • 问题内容: 有人可以解释为什么这样的代码吗? 产生以下编译器错误: 不兼容的条件操作数类型ArrayList和HashSet 由于我不明白的原因,以下内容解决了该问题 我正在使用Java 1.4。 问题答案: 这是1.4 中的 错误 ,并已根据bugreport 5080917 进行了修复。 评估 这是一个错误。 xxxxx @ xxxxx 2004-07-30

  • 什么是元运算符 Perl6使用了六种元运算符(meta-operators)以扩充常规运算符的功能,其中部分运算符与Perl5或者其他语言中的相同,其余则是Perl6所特有的,它们分别是: 赋值运算符(assignment operators) 否定关系运算符(negated relation operators) 反转运算符(reversed operators) 超算符(hyper opera

  • 条件(三元)运算符是 JavaScript 仅有的使用三个操作数的运算符。一个条件后面会跟一个问号(?),如果条件为 truthy ,则问号后面的表达式A将会执行;表达式A后面跟着一个冒号(:),如果条件为 falsy ,则冒号后面的表达式B将会执行。本运算符经常作为 if 语句的简捷形式来使用。(MDN) 三元运算符,也称条件运算符、三目运算符。 三元运算符可以代替简单的 if 语句。 1. 语

  • 有没有办法用三元运算来实现这个。我对三进制很陌生,也许你可以指导我。 这个好像不行。