• kryptonianCodeMonkey@lemmy.world
    link
    fedilink
    arrow-up
    7
    ·
    2 days ago

    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

    • BeigeAgenda@lemmy.ca
      link
      fedilink
      arrow-up
      1
      ·
      11 hours ago

      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.