Blo*_*y21 7 c ternary-operator conditional-operator
我知道如果可以用c语言写短语请告诉我如何
if arraeck(a, n) ? printf("YES") printf("NO");
Run Code Online (Sandbox Code Playgroud)
这样的一些事情?...在一行......什么是正确的语法?
Nik*_* B. 20
直接翻译您的示例代码:
arraeck(a, n) ? printf("YES") : printf("NO");
Run Code Online (Sandbox Code Playgroud)
甚至更短:
printf(arraeck(a, n) ? "YES" : "NO");
Run Code Online (Sandbox Code Playgroud)
这被称为(三元)条件运算符?:,它并不总是使用它的最佳解决方案,因为它很难阅读.如果需要条件的结果,通常只使用它,就像在第二个代码示例中(运算符求值"YES"或"NO"此处).
在第一个示例中,运算符不用作表达式,因此您最好使用显式if(毕竟不是那么长):
if (arraeck(a, n))
printf("YES");
else
printf("NO");
Run Code Online (Sandbox Code Playgroud)
if (cond) {
exp1;
} else {
exp2;
}
Run Code Online (Sandbox Code Playgroud)
可以写成
cond ? exp1 : exp2;
Run Code Online (Sandbox Code Playgroud)
这种形式通常用于像这样的条件赋值(来自?: 的维基百科条目):
variable = condition ? value_if_true : value_if_false
Run Code Online (Sandbox Code Playgroud)
?:不等同于if:后者是一种陈述,但前者是一种表达.
你可以做:
arraeck(a, n) ? printf("YES") : printf("NO");
Run Code Online (Sandbox Code Playgroud)
但这是不好的风格.
你也可以
str = arraeck(a, n) ? "YES" : "NO";
printf(arraeck(a, n) ? "YES" : "NO");
Run Code Online (Sandbox Code Playgroud)
但你不能写
str = if (arraeck(a, n)) "YES"; else "NO";
printf(if (arraeck(a, n)) "YES"; else "NO");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
53717 次 |
| 最近记录: |