关于三目运算符,你需要知道的所有

发布时间 2024-01-01 15:57:50作者: worker2011

\(if...else\)语句常写吧?

\(But\),你会不会觉得:

\(if...else\)? 烦死了!

\(switch\)?就俩我写啥……

于是,又一个\(C\)艹利器——三目运算符诞生啦!

先上代码:

mn = (a < b) ? a : b; /* 其中,? :为三目运算符,一般为“结果保存值 = 条件 ? 结果A : 结果B*/

意思即:如果\(a < b\),那么\(mn = a\),否则\(mn = b\)

那不就是\(if...else\)吗!

不,如果你用\(if...else\),那么代码会变成这样:

if (a < b)
	mn = a;
else
	mn = b;

不仅变长了,而且,三目运算符是个运算符,它可以被塞进别的语句(写 \(DFS\)\(DP\) 的时候可能会用到)里面!

最后,说一下性能排名。三目运算符作为运算,速度最快,但也有很大的限制(必须要有\(1\)个变量给赋值)。而\(switch\)\(if...else\)不相上下,但是\(3\)个以上语句时,\(switch\)不仅更方便,还更快哟。

\(if...else\)也不是一无是处,像浮点数这种你还真得用\(if...else\)是不?