什么是问号 “?”和冒号 “:” 运算符用于?

关于在打印函数的括号内使用问号 “?” 和冒号 “:” 运算符的两个问题:它们有什么作用?另外,有没有人知道它们的标准术语,或者我在哪里可以找到有关它们使用的更多信息?我读过它们类似于“如果”“else”语句。

int row = 10;
int column;
while (row >= 1)
{
    column = 1;
    while(column <= 10)
    {
        System.out.print(row % 2 == 1 ? "<" : "\r>");
        ++column;
    }
    --row;
    System.out.println();
}

答案 1

这是三元条件运算符,可以在任何地方使用,而不仅仅是 print 语句。它有时被称为“三元算子”,但它并不是唯一的三元算子,只是最常见的三元算子。

以下是维基百科的一个很好的例子,展示了它是如何工作的:

用C,Java和JavaScript编写了一个传统的if-else结构:

if (a > b) {
    result = x;
} else {
    result = y;
}

这可以重写为以下语句:

result = a > b ? x : y;

基本上它采取以下形式:

boolean statement ? true result : false result;

因此,如果布尔语句为真,则得到第一部分,如果它是假的,则得到第二部分。

如果这仍然没有意义,请尝试以下操作:

System.out.println(true ? "true!" : "false.");
System.out.println(false ? "true!" : "false.");

答案 2

这是一个 if/else 语句,等效于

if(row % 2 == 1){
  System.out.print("<");
}else{
  System.out.print("\r>");
}