[英]Conditional statements inside `printf`
是否有任何方法在其他語句中使用條件語句,例如printf
?
一種方法是使用三元運算符? :
? :
例如:
printf("%d", a < b ? a : b);
是否有更復雜條件的方法?
不需要更復雜的表達式,條件運算符已經足夠糟糕了。 它沒有語言功能。 相反,寫一個函數。
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
你根本不能把語句放到printf
中,你只能把表達式放在那里。 三元運算符形成一個表達式 。 表達式基本上是運算符和操作數的樹,但是允許使用一些有趣的運算符,如','逗號運算符或'='賦值運算符。 這允許表達式具有副作用。
每個條件語句都返回1
或0
。 這些值是int
所以如果你做printf("%d",a>b);
然后將打印1
(真)或0
(假)。
在您的示例中,您使用的是三元運算符a<b?a:b
。 如果條件為真,那么a
將要打印的其他b
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.