我不知道问号 ( ?
) 在 java 中代表什么,我正在做一个小程序,一个 Nim 游戏。正在看一本书,寻求帮助,看到了这样的说法:
int pinsToTake = (min >= 2) ? 2 : 1;
我不明白,它?
代表什么,它可以与 if 语句有关,但你把它放在一个变量中吗?可以是:
“别的”吗?(我刚才说的这件事可能会产生很大的误导)
我不知道问号 ( ?
) 在 java 中代表什么,我正在做一个小程序,一个 Nim 游戏。正在看一本书,寻求帮助,看到了这样的说法:
int pinsToTake = (min >= 2) ? 2 : 1;
我不明白,它?
代表什么,它可以与 if 语句有关,但你把它放在一个变量中吗?可以是:
“别的”吗?(我刚才说的这件事可能会产生很大的误导)
someval = (min >= 2) ? 2:1;
这称为三元运算符,可以用作if-else
. 这相当于
if((min >= 2) {
someval =2;
} else {
someval =1
}
按照本教程了解更多信息和用法。
它ternary operator
也称为条件运算符,看看参考
像Object bar = foo.isSelected() ? getSelected(foo) : getSelected(baz);
例如。operand1 ? operand2 : operand3
- 如果操作数 1 为真,则返回操作数 2,否则返回操作数 3
- 操作数 1 必须是布尔类型
- 操作数 1 可以是计算结果为布尔类型的表达式
- 操作数 1 和操作数 2 必须是可提升的数字类型或可转换的对象引用,或者为 null
- 如果操作数 2 或操作数 3 之一是字节,另一个是短整数,则返回值的类型将是短整数
- 如果操作数 2 或操作数 3 之一是 byte、short 或 char,而另一个是适合其他操作数范围的常量 int 值,则返回值的类型将是其他操作数的类型
- 否则,正常的二进制数字提升适用
- 如果操作数 2 或操作数 3 之一为空,则返回的类型将是另一个操作数的类型
- 如果操作数 2 和操作数 3 都是不同的类型,则其中一个必须兼容(可转换)到另一个类型 引用
那是一个三元运算符。查看 Oracle 的文档以获取更多信息。长话短说,它是一个 if-else 语句,可以在一行中完成并在方法内部使用并定义变量值。
句法:
boolean_expression ? do_if_true : do_if_false;
与 if-else 语句的并行性:
if(boolean_expression)
//do_if_true;
else
//do_if_false;
do_if_true
我没有故意使用括号,因为你只能在and中执行一行代码do_if_false
。
使用示例:
boolean hello = true;
String greetings = hello ? "Hello World!" : "No hello for you...";
这将设置someString
为"Hello World!"
因为布尔变量hello
评估为真。另一方面,你可以嵌套这个表达式:
boolean hello = true;
boolean world = false;
String greetings = hello ? (world ? "Hello World!" : "Hello Stranger!") : "No hello for you...";
在这种情况下,问候语将具有一个值"Hello Stranger!"
;
它被称为三元 If 运算符,它只是一个简写形式if...else
"? :" 是一个三元运算符,相当于 if else 语句。
在您的示例中:
pinsToTake = (min >= 2) ? 2 : 1
如果 min >= 2 然后将 2 分配给 pinsToTake,否则分配 1
max = (a > b) ? a : b;
(a > b) ? 一:乙;是一个表达式,它返回两个值之一,a 或 b。
测试条件 (a > b)。如果为真,则返回第一个值 a。如果为假,则返回第二个值 b。
返回哪个值取决于条件测试,a > b。条件可以是任何返回布尔值的表达式。
它被称为条件运算符。这就是它的工作原理。如果 min 大于或等于 2,那么后面的第一个值?此处为 2 将分配给相应的变量,否则将分配此处为 1 的第二个值。
这个链接会告诉你所有你需要的。
存档摘要:
它被称为条件运算符。这是一个三元运算符,需要三个术语:
布尔表达式?经验 1 : 经验 2
BooleanExpression 被评估。如果为真,则整个表达式的值为 Expr1。如果为假,则整个表达式的值为 Expr2。
因此,它的用途与 if 语句相同,但它是一个术语而不是整个语句。这意味着您可以将其嵌入到无法使用整个语句的地方。