我们如何不使用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/