C 的 IF-ELSE 语句简写语法如下
(integer == 5) ? (TRUE) : (FALSE);
我经常发现自己只需要陈述的一部分(正确或错误)并使用它
(integer == 5) ? (TRUE) : (0);
我只是想知道是否有办法不使用这种速记符号包含语句的 ELSE 部分?
运算符
?:
必须返回一个值。如果没有“else”部分,当布尔表达式为 false 时,它会返回什么?在其他一些语言中,合理的默认值可能是 null,但对于 C 来说可能不是。如果您只需要执行“if”并且不需要它返回值,那么输入 if
会容易得多。
问题是我们是否可以以某种方式编写没有 then 和 else 部分的以下表达式
(integer == 5) ? (THENEXPR) : (ELSEEXPR);
如果您只需要then部分,您可以使用&&:
(integer == 5) && (THENEXPR)
如果您只需要 else 部分,请使用 ||:
(integer == 5) || (ELSEEXPR)
假设您正在使用?运算符将其返回值分配给变量,您可以在 else 部分写回您的值,因此它保留其旧值。
int retval = 0;
retval = (integer == 5) ? (5) : (retval);
仍然建议使用简单的 if,就像建议接受的答案一样......