c-if + else if + else是否在一行中?

Cjd*_*coy 2 c if-statement

我误解了朋友的陈述后才有一个疑问。

我的朋友告诉我:我刚刚教同事如何在c中一行执行if / else。

例:

int i = 0;
i < 0 ? printf("i is below 0") : printf("i is over or equal to 0");
Run Code Online (Sandbox Code Playgroud)

现在,没有什么新鲜的东西,它被称为三元数,大多数人都知道这种陈述,但是我首先了解到:

我刚刚教了一位同事如何在同一行中执行IF / ELSE IF / ELSE。因为我不知道这样做是不可能的,所以我尝试做类似的事情

int i = 0;
 i < 0 ? printf("i is below 0") : i == 0 ? printf("i equal 0") : printf("i is over 0");
Run Code Online (Sandbox Code Playgroud)

实际上是否可以执行if / else if / else“三元”。还是有一种方法可以在没有可怕的代码的情况下进行此类操作?

Som*_*ude 7

如果您看到例如此条件表达式参考,则可以看到“三元表达式”的格式为

condition ? expression-true : expression-false

条件表达式的所有三个部分又是表达式。这意味着您几乎可以具有任何种类的表达式,包括嵌套的条件(三元)表达式。


小智 6

This is definitely valid.

Or you could try something like this -

printf(i < 0 ? "i is below 0" : i == 0 ? "i equal 0" : "i is over 0");
Run Code Online (Sandbox Code Playgroud)