这是正常的代码:
if(a==b)
printf("equal");
else if(a>b)
printf("bigger");
else
printf("smaller");
Run Code Online (Sandbox Code Playgroud)
我的老师想要改变if/else这个结构:
printf("%s",a>b?"bigger":"smaller")
Run Code Online (Sandbox Code Playgroud)
当然,这只是一个简单而标准的.我不知道如何将其应用于上面的代码来替换if/else.
使用嵌套条件运算符通常不是一个好主意,但可以这样做:
printf("%s", a==b ? "equal" : (a > b ? "bigger" : "smaller"));
Run Code Online (Sandbox Code Playgroud)
你的老师告诉你使用三元运算符.
// Generally it looks like this
( predicate ) ? If_True : If_False ;
Run Code Online (Sandbox Code Playgroud)
操作符可以自行堆叠(使用括号语句)来生成更复杂的逻辑.
( predicate_0 ) ? If_True : ( ( predicate_1 ) ? If_True : ... )) ;
Run Code Online (Sandbox Code Playgroud)
虽然通常以这种方式堆叠三元运算符会使代码更难以阅读.在大多数情况下,你最好使用if ... else块