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

我不知道问号()在java中代表什么,我正在做一个小程序,一个Nim游戏。在找书里找,寻求帮助,看到了这句话:?

int pinsToTake = (min >= 2) ? 2 : 1;

我不明白它,什么会代表,它能与if语句有关,但你把它放在一个变量中吗?和可以是“别的”?(我刚才说的这件事可能很有误导性)?:


答案 1

someval = (最小值 >= 2) ?2 : 1;

这称为三元运算符,可用作 。这相当于if-else

if((min >= 2) {
   someval =2;
} else {
   someval =1
}

请遵循本教程以获取更多信息和用法。


答案 2

它也被称为条件运算符,有个看参考ternary operator

喜欢Object bar = foo.isSelected() ? getSelected(foo) : getSelected(baz);

例如。operand1 ? operand2 : operand3

  • 如果操作数 1 为 true,则返回操作数 2,否则返回操作数 3
  • 操作数 1 必须是布尔类型
  • operand1 可以是计算结果为布尔类型的表达式
  • 操作数 1 和操作数 2 必须是可升级的数值类型或可重放的对象引用,或为 null
  • 如果操作数 2 或操作数 3 中的一个是字节,另一个是短字节,则返回值的类型将为短
  • 如果操作数2或操作数3中的一个是字节,短整或字符,而另一个是常量int值,它将适合其他操作数范围,则返回值的类型将是另一个操作数的类型
  • 否则,将应用正常的二进制数字促销
  • 如果操作数 2 或操作数 3 中的一个为空值,则返回的类型将是另一个操作数的类型
  • 如果操作数 2 和操作数 3 是不同的类型,则其中一个必须与另一个类型引用兼容(可转换)

推荐