`printf`里面的条件语句

时间:2014-01-24 09:09:16

标签: c printf conditional

是否有任何方法可以在其他语句中使用条件语句,例如printf

一种方法是使用三元运算符? :,例如:

printf("%d", a < b ? a : b);

是否有更复杂条件的方法?

3 个答案:

答案 0 :(得分:3)

不需要更复杂的表达式,条件运算符已经足够糟糕了。它没有语言功能。相反,写一个函数。

printf("%d", compare(a,b)); // good programming, readable code

printf("%d", a<b?(x<y?x:y):(x<y?y:x)); // bad programming, unreadable mess

答案 1 :(得分:2)

您根本无法将语句放入printf,您只能将表达式放在那里。三元运算符形成表达式。表达式基本上是运算符和操作数的树,但是允许使用一些有趣的运算符,如','逗号运算符或'='赋值运算符。这允许表达式具有副作用。

答案 2 :(得分:1)

每个条件语句都会返回10。这些值为int

因此,如果您执行printf("%d",a>b);,则会打印1(true)或0(false)。

在您的示例中,您使用的是三元运算符a<b?a:b。 如果条件为真,那么a将打印为b