如果声明? 并且:
我听说过哪种if语句使用?
并且:
在C中
我不知道如何使用它,我无法找到任何关于它。 我需要使用它来缩短我的代码,任何帮助将不胜感激。
?:
是C中的三元运算符 (也称为条件运算符)。 你可以缩短你的代码
if(condition) expr1; else expr2;
至
condition ? expr1 : expr2;
看看它怎么运作:
C11:6.5.15条件运算符:
第一个操作数被评估; 在其评估与第二或第三操作数的评估之间存在一个序列点(以评估者为准)。 仅当第一个操作数不等于
0
时才评估第二个操作数; 仅当第一个操作数比较等于0
时才评估第三个操作数; 结果是第二个或第三个操作数的值(以评估者为准),
正如其他人所提到的,它被称为三元运算符。 但是,如果您不知道这一点,那么直接谷歌会有点困难,因为谷歌不能很好地处理标点符号。 幸运的是,StackOverflow自己的搜索处理引号中的标点符号就是这种情况。
此搜索将产生您正在寻找的答案。 或者,您可以在Google上搜索“c中的问号和冒号”,拼写出标点符号的名称。
首先你有条件吗?
然后你的表达式为TRUE吗? 并且:
然后你的表达式为FALSE:
像这样的东西:
(1 != 0) ? doThisIfTrue : doThisIfFalse
三元运算符?:
是一个最小化的if
语句,可以减少这个:
if(foo) exprIfTrue(); else exprIfFalse();
对此:
(foo) ? exprIfTrue() : exprIfFalse() ;
就个人而言,我避免使用它,因为它很容易变得难以理解。 使用的唯一好例子是在printf
显示标志的状态:
int my_flag = 1; printf("My flag: %s\n", my_flag ? "TRUE" : "FALSE" );