我知道如果可以用c语言写短语法 请告诉我如何
if arraeck(a, n) ? printf("YES") printf("NO");
这样的事情?...在一行...... 什么是正确的语法 ?
答案 0 :(得分:17)
直接翻译示例代码:
arraeck(a, n) ? printf("YES") : printf("NO");
甚至更短:
printf(arraeck(a, n) ? "YES" : "NO");
这被称为(ternary) conditional operator ?:
,它并不总是使用它的最佳解决方案,因为它很难阅读。如果您需要条件的结果,通常只使用它,就像在第二个代码示例中一样(运算符在此处求值为"YES"
或"NO"
)。
在第一个示例中,运算符不用作表达式,因此最好使用显式的if
(毕竟不是那么长):
if (arraeck(a, n))
printf("YES");
else
printf("NO");
答案 1 :(得分:6)
?:
不等同于if
:后者是一个陈述,但前者是一个表达式。
你可以这样做:
arraeck(a, n) ? printf("YES") : printf("NO");
但风格很糟糕。
您也可以
str = arraeck(a, n) ? "YES" : "NO";
printf(arraeck(a, n) ? "YES" : "NO");
但你不能写
str = if (arraeck(a, n)) "YES"; else "NO";
printf(if (arraeck(a, n)) "YES"; else "NO");
答案 2 :(得分:3)
if (cond) {
exp1;
} else {
exp2;
}
可以写成
cond ? exp1 : exp2;
此表单通常用于此类条件赋值(来自Wikipedia entry of ?:):
variable = condition ? value_if_true : value_if_false
答案 3 :(得分:2)
printf(arraeck(a,n) ? "YES" : "NO");