什么是一个问号和冒号“?”“:”操作用的? [重复] 什么是一个问号和冒号“?”“:”操作用的?

2019-05-13 16:31发布

这个问题已经在这里有一个答案:

  • 什么是Java?所谓的运营商,它有什么作用? 15个回答

有关使用问号两个问题“?” 和冒号“:”打印功能的括号内的运营商:他们做什么工作? 此外,没有人知道他们的标准条款或在哪里可以找到他们使用的更多信息? 我读过,它们类似于一个'如果“别人”的语句。

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();
}

Answer 1:

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

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

传统的if-else结构在C,Java和JavaScript写的是:

 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.");


Answer 2:

那是一个if / else语句equilavent到

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


Answer 3:

a=1;
b=2;

x=3;
y=4;

answer = a > b ? x : y;

answer=4 ,因为条件为假花费y值。

问号(?)
。 如果条件为真时使用的值

冒号(:)
。 如果条件为假时使用的值



Answer 4:

也许它可以是Android的很好的例子, 例如:

void setWaitScreen(boolean set) {
    findViewById(R.id.screen_main).setVisibility(
            set ? View.GONE : View.VISIBLE);
    findViewById(R.id.screen_wait).setVisibility(
            set ? View.VISIBLE : View.GONE);
}


Answer 5:

它是一个三元运算符和在简单的英文它指出"if row%2 is equal to 1 then return < else return /r"



Answer 6:

此外,虽然只是我的答案张贴到另一个相关的问题,我有,

a = x ? : y;

相当于:

a = x ? x : y;

如果x是虚假或null,则y的值取。



Answer 7:

他们被称为三元运算符 ,因为它们是在Java中唯一的一个。

在if ... else结构不同的是,它们返回的东西,而这个东西可以是任何东西:

  int k = a > b ? 7 : 8; 
  String s = (foobar.isEmpty ()) ? "empty" : foobar.toString (); 


文章来源: What is a Question Mark “?” and Colon “:” Operator Used for? [duplicate]