布尔? :操作语法

可能重复:
问号和冒号(?:三元运算符)在objective-c中的含义是什么?

我见过它使用类似语法的代码…

someValue = someBoolean ? valueOne : valueTwo; 

或类似的东西。

我从来没有用过这个,我不确定它叫什么。

请有人解释如何使用它或提供有关它的资源的链接。

这是三元经营者。

它评估someBoolean条件。

如果为true,则将valueOne传递给someValue

如果为false,则将valueTwo传递给someValue

它等于:

 if(someBoolean) { someValue = valueOne; } else { someValue = valueTwo; } 

这是一个很好的链接,解释了三元运算符

这称为三元运算符(?:)

 1 ? 2 : 3 

1是条件。

当1为真时执行2。

当1为假时执行图3的处理。

类似于:(以下不是正在运行的代码,1,2,3仅显示某些表达式和语句的占位符。

  if(1){ //condition 2 //true } else{ 3 //false } 

你可以缩短它:

 int bigger; (10<100) ? bigger=100 : bigger=10; 

简而言之:

 int bigger = (10<100) ? 100 : 10 ; 

注意:

它的优先顺序是最少的,它比if-else和switch case语句要慢得多。

它是ternary operator (也称为conditional operator )。 您可以在此链接中找到解释。

基本上你的表达式是,如果someBoolean为true,someValue将获得valueOne ,否则它将获得valueTwo

它类似于:

  if(someBoolean) { someValue = valueOne; } else { someValue = valueTwo; } 

这会降低代码的可见性。 如果您想要分配一个取决于一个条件的值,我建议使用此运算符。

请注意,它是一个不是Objective-C特有的表达式,您也可以在CC++使用它。

赋值的结果是valueOne是条件为true,valueTwo如果条件为false。

在维基百科上查看。 它也使用其他语言,只需跳过它们并查看C语法示例。

假设用户需要回答一些问题,如果他错了,你将视图的背景颜色改为红色,如果他是正确的话,你会改变为绿色。

 - (void)handleAnswer:(BOOL)correct { UIColor *color = (correct) ? [UIColor greenColor] : [UIColor redColor]; self.view.backgroundColor = color; } 

它的作用与以下相同

 if (someBoolean) { someValue = valueOne; } else { someValue = valueTwo; }