是否有任何方法可以在其他语句中使用条件语句,例如printf
?
一种方法是使用三元运算符? :
,例如:
printf("%d", a < b ? a : b);
是否有更复杂条件的方法?
答案 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)
每个条件语句都会返回1
或0
。这些值为int
因此,如果您执行printf("%d",a>b);
,则会打印1
(true)或0
(false)。
在您的示例中,您使用的是三元运算符a<b?a:b
。
如果条件为真,那么a
将打印为b
。