guber@lemmy.blahaj.zone to Lemmy Shitpost@lemmy.world · 3 days agoproportional reactionlemmy.blahaj.zoneimagemessage-square45linkfedilinkarrow-up1163arrow-down118cross-posted to: onehundredninetysix@lemmy.blahaj.zone
arrow-up1145arrow-down1imageproportional reactionlemmy.blahaj.zoneguber@lemmy.blahaj.zone to Lemmy Shitpost@lemmy.world · 3 days agomessage-square45linkfedilinkcross-posted to: onehundredninetysix@lemmy.blahaj.zone
minus-squarekryptonianCodeMonkey@lemmy.worldlinkfedilinkarrow-up7·2 days agoWeird example. 3 nested conditionals is not the typical use case for a ternary, and 2 of the 5 branches result in a pointless a=a assignment. I agree this is bad code, but it’s just as bad and hard to parss in a normal if-else structure too: if (a>b) { if (b>c) { if (a<d) { a=c; } else { a=a; } } else { a=d; } } else { if (b<c) { a=a; } else { a=d; } } In another situation, though, it’s perfectly readable to have a much more typical ternary use case like: a = c > d ? c : d And a pair of parentheses never hurt readability either: a = (c > d) ? c : d
minus-squareBeigeAgenda@lemmy.calinkfedilinkarrow-up1·11 hours agoGood point, I have only seen 2. nested ternary operators in the wild, and I am pretty sure the second level was added as a bugfix.
Weird example. 3 nested conditionals is not the typical use case for a ternary, and 2 of the 5 branches result in a pointless a=a assignment. I agree this is bad code, but it’s just as bad and hard to parss in a normal if-else structure too:
if (a>b) { if (b>c) { if (a<d) { a=c; } else { a=a; } } else { a=d; } } else { if (b<c) { a=a; } else { a=d; } }
In another situation, though, it’s perfectly readable to have a much more typical ternary use case like:
a = c > d ? c : d
And a pair of parentheses never hurt readability either:
a = (c > d) ? c : d
Good point, I have only seen 2. nested ternary operators in the wild, and I am pretty sure the second level was added as a bugfix.