Ternary Operators & Maintenance
Programmer A just loves some ternary operators, especially nested ones.  Better yet he claims that they make the code easier to read and maintain because they can be fit on fewer lines.  Programmer B argues that readability is lost when ternaries are nested, and in turn the code becomes harder to maintain.

Check out the block below:


    private int MyFunction(bool condA, bool condB)
    {
      // Programmer A says:
      // Nested ternary --> This is easier to read and maintain because it is on one line.  Ternaries can be nested 4 or 5 deep and it is no problem.
      return condA ? condB ? 20 : -10 : -20;

      // Programmer B says:
      // Unwrapped --> This is more readable as it better describes the step by step evaluation of the conditions and their results.
      if (!condA) { return -20; }
      if (!condB) { return -10; }
      return 20;
    }

What does everyone else think about the two schools of thought?  What is the best approach to take?
Ternary Operators & Maintenance
===

Programmer A just loves some ternary operators, especially nested ones.  Better yet he claims that they make the code easier to read and maintain because they can be fit on fewer lines.  Programmer B argues that readability is lost when ternaries are nested, and in turn the code becomes harder to maintain.

Check out the block below:


    private int MyFunction(bool condA, bool condB)
    {
      // Programmer A says:
      // Nested ternary --> This is easier to read and maintain because it is on one line.  Ternaries can be nested 4 or 5 deep and it is no problem.
      return condA ? condB ? 20 : -10 : -20;

      // Programmer B says:
      // Unwrapped --> This is more readable as it better describes the step by step evaluation of the conditions and their results.
      if (!condA) { return -20; }
      if (!condB) { return -10; }
      return 20;
    }

What does everyone else think about the two schools of thought?  What is the best approach to take?