Tag: 条件运算符

Java中的“?”是什么意思?

我不知道java中的问号( ? )代表什么,我正在做一个小程序,一个Nim游戏。 正在寻找一本书,寻求帮助并看到这句话: int pinsToTake = (min >= 2) ? 2 : 1; 我不明白,会是什么? 代表,它可以与if语句有关但你把它放在变量中吗? 并且:可以是“其他”的东西? (我刚才说的这些事情可能会非常误导)

使用条件运算符的奇怪java行为。 这是一个错误吗?

你可以运行下面的解释吗? Object o = true ? new Integer(1) : new Double(2.0); System.out.println(o); 我发现这令人惊讶,因为有人会期望打印1而不是1.0

Java条件赋值中的类型错误

在下面的代码中,我有两个相同的条件赋值操作,一个返回Double类型的对象,第二个返回字符串“Integer”。 double d = 24.0; Number o = (d % 1 == 0) ? new Double(d).intValue() : new Double(d).doubleValue(); String result = (d % 1 == 0) ? “Integer” : “Double”; System.out.println(o.getClass()); // prints “class java.lang.Double” System.out.println(result); // Integer 为什么完全相同的表达式返回两个不同的东西?

为什么Java没有条件和条件运算符的复合赋值版本? (&& =,|| =)

因此对于布尔值的二元运算符,Java有& , | , ^ , &&和|| 。 让我们简要总结一下他们在这里简要介绍的内容: JLS 15.22.2布尔逻辑运算符&,^和| JLS 15.23条件和运算符&& JLS 15.24条件运算符|| 对于& ,如果两个操作数值都为true ,则结果值为true ; 否则,结果是false 。 对于| ,如果两个操作数值都为false ,则结果值为false ; 否则,结果是true 。 对于^ ,如果操作数值不同,则结果值为true ; 否则,结果是false 。 &&运算符类似于&但仅在其左侧操作数的值为true时才计算其右侧操作数。 || 运算符就像| ,但仅在其左侧操作数的值为false时才计算其右侧操作数。 现在,在所有5个中,有3个具有复合赋值版本,即|= , &=和^= 。 所以我的问题很明显:为什么Java不提供&&=和||= ? 我发现我需要的不仅仅是我需要的那些&=和|= 。 而且我不认为“因为它太长”是一个很好的答案,因为Java有>>>= 。 这种遗漏必须有更好的理由。 从15.26分配运营商 : 有12个赋值运算符; […] = *= /= %= […]

检查int是否在两个数字之间

如果你试图找出int是否在数字之间,为什么不能这样做: if(10 < x < 20) 而不是它,你将不得不这样做 if(10<x && x<20) 这似乎有点开销。

可以使用Java的三元/条件运算符(?:)来调用方法而不是赋值吗?

在像http://en.wikipedia.org/wiki/?这样的页面中:三元/条件运算符?:似乎用于条件赋值。 我尝试将它用于方法调用,如下所示: (condition) ? doThis() : doThat(); 两种方法都返回void。 Java告诉我这不是一个声明。 所以,我猜我不能做条件方法调用……或者我可以吗?

Java三元(即时)评估

我无法找到规范的相关部分来回答这个问题。 在Java中的条件运算符语句中,是否评估了true和false参数? 因此,以下内容可能会抛出NullPointerException Integer test = null; test != null ? test.intValue() : 0;