c - 模拟条件

标签 c conditional conditional-statements

我们如何使用if来编写条件行为?(三元运算符)?

想到一个想法:

for(;boolean_expression;) {
  // our code
  break;
}

还有其他的吗?

最佳答案

我希望你不想要的只是“如果”或“三元”。

#1

这个怎么样:

代替:if (condition) printf("Hi");

使用:

condition && printf("Hi");

短路评估。不过,这与使用 if 非常相似。

#2

对于 if (condition) a();否则 b();

使用:

int (*p[2])(void) = {b, a};
(p[!!condition])()

使用函数指针数组和双重否定。

#3

另一个接近三元运算符的变体(虽然是函数)

ternary_fn(int cond, int trueVal, int falseVal){
    int arr[2];
    arr[!!cond] = falseVal;
    arr[!cond] = trueVal;
    return arr[0];
}

ret = ternary_fn(a>b, 5, 3) 一样使用它而不是 ret = a > b 吗? 5 : 3;

关于c - 模拟条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5509814/

相关文章:

将两个文本文件合并为第三个文本文件并跟踪数据

c - "Address of"(&) 一个被gcc忽略的数组/地址?

Javascript - 带有多个条件的简写形式的 if 语句

python - 如何检查字典是否嵌套 - python

c - Dietlibc在哪里定义函数_start?

C - 多个左值错误

python - 有条件地替换 NaN

php - 我可以在字符串中存储逻辑比较吗?

join - Doctrine Query Builder 嵌套 orX 和 andX 条件与连接

html - 有条件地渲染 .hbs 模板 emberjs