什么是&引用;用Java是什么意思?

什么是&引用;用Java是什么意思?,java,ternary-operator,conditional-operator,Java,Ternary Operator,Conditional Operator,我不知道问号(?)在java中代表什么,我在做一个小程序,一个Nim游戏。我们在一本书中寻求帮助,并看到以下声明: int pinsToTake = (min >= 2) ? 2 : 1; if(boolean_expression) //do_if_true; else //do_if_false; 我不明白,?代表什么,它能和if语句有关吗,但你把它放在一个变量中?而:可以是“其他”吗?(我刚才说的这些话可能会很误导人) someval=(最小值>=2)?2 :

我不知道问号(
)在java中代表什么,我在做一个小程序,一个Nim游戏。我们在一本书中寻求帮助,并看到以下声明:

int pinsToTake = (min >= 2) ? 2 : 1;
if(boolean_expression)
    //do_if_true;
else 
    //do_if_false;
我不明白,
代表什么,它能和if语句有关吗,但你把它放在一个变量中?而
可以是“其他”吗?(我刚才说的这些话可能会很误导人)

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

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

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

有关更多信息和用法,请按此操作。

三值运算符
也称为条件运算符,请查看

objectbar=foo.isSelected()?getSelected(foo):getSelected(baz)

例如,
操作数1?操作数2:操作数3

  • 如果操作数1为true,则返回操作数2,否则返回操作数3
  • 操作数1必须是布尔类型
  • 操作数1可以是计算结果为布尔类型的表达式
  • 操作数1和操作数2必须是可升级的数字类型或可转换的对象引用,或为null
  • 如果操作数2或操作数3中的一个是字节,另一个是短字节,则返回值的类型将是短字节
  • 如果操作数2或操作数3中的一个是字节、短字符或字符,而另一个是适合其他操作数的常量整数值 范围,则返回值的类型将是另一个值的类型 操作数
  • 否则,将应用常规二进制数字升级
  • 如果操作数2或操作数3中的一个为空,则返回的类型将是另一个操作数的类型
  • 如果操作数2和操作数3都是不同的类型,则其中一个必须与另一个类型兼容(可强制转换)
它被称为,它只是if…else的缩写,是一个三元运算符,相当于if-else语句

在您的示例中:

   pinsToTake = (min >= 2) ? 2 : 1 
如果min>=2,则将2分配给pinsToTake,否则将1分配给pinsToTake

max = (a > b) ? a : b;

(a>b)?a:b;返回两个值(a或b)之一的表达式。
测试条件(a>b)。如果为true,则返回第一个值a。如果为false,则返回第二个值b。
返回的值取决于条件测试a>b。条件可以是任何返回布尔值的表达式。

它被称为条件运算符。这就是它的工作原理。 如果最小值大于或等于2,那么后面的第一个值是?也就是说,这里的2将被分配给相应的变量,否则这里的第二个值1将被分配。

它意味着:

if(min >= 2) 
   someval =2;
else 
   someval =1
它叫 也看看这个java

会告诉你你需要的一切

为了存档起见,总结:

它被称为条件运算符。这是一个三元运算符 有三个任期:

布尔表达式?Expr1:Expr2

对布尔表现主义的评价。如果这是真的,那么 整个表达式是Expr1。如果它是假的,整个的价值 表达式是Expr2

因此,它的作用与if语句相同,但它是一个 而不是一个完整的陈述。这意味着您可以将其嵌入到 不能使用完整语句的地方


这是一个三元运算符。更多信息。长话短说,它是一个if-else语句,可以在一行中完成,在方法内部使用,并定义变量值

语法:

boolean_expression ? do_if_true : do_if_false;
与if-else语句的并行性:

int pinsToTake = (min >= 2) ? 2 : 1;
if(boolean_expression)
    //do_if_true;
else 
    //do_if_false;
我没有故意使用括号,因为在
do\u if\u true
do\u if\u false
中只能执行一行代码

使用示例:

boolean hello = true;
String greetings = hello ? "Hello World!" : "No hello for you...";
这将把
someString
设置为
你好世界!”
,因为布尔变量
Hello
的计算结果为true。另一方面,可以嵌套以下表达式:

boolean hello = true;
boolean world = false;

String greetings = hello ? (world ? "Hello World!" : "Hello Stranger!") : "No hello for you...";

在这种情况下,问候语的值为“你好,陌生人!”

谢谢你,好心的先生@亚历克赛:不用谢,:-)看。