#034 – The conditional operator is CHEESE

Conditional operator allows us to do this:

if(!found_sig_fig) {      // The input doesn't contain a nonzero number
    return std::string(negative ? "-" : "") + "0e0";
}

and this:

std::cout << p1[i] << ((i != 15-1) ? ", " : " ");
// In this case, I wanted to print a "," for all elements, except the last one

Introduction

The conditional operator (?:) is also called the arithmetic if operator. It’s a ternary operator, meaning it requires 3 operands. Historically, it’s been C++’s only ternary operator.

It’s concise way of implementing an if/else block.

Syntax: condition ? true expression : false expression

Uses of the conditional operator

For all cases below, replacing it with an if/else would case additional LOC and clutter.

  1. Variable initialization
    #include <iostream>
    
    int main()
    {
        constexpr bool isMember { true };
        constexpr double ticketPrice { isMember ? 12.50 : 18.00 };
        std::cout << "Ticket price: $" << ticketPrice << '\\n';
    }

    2. Function call

    #include <iostream>
    
    void setMotorSpeed(int speedPercent)
    {
        std::cout << "Motor speed set to " << speedPercent << "%\\n";
    }
    
    int main()
    {
        constexpr bool batteryLow { true };
        setMotorSpeed(batteryLow ? 40 : 100);
    }

    3. return statement and std::cout

      See examples at the top

      When should you use the condition operator?

      • Initializing an object with one of two values
      • Assigning one of two values to an object
      • Passing one of two values to a function.
      • Returning one of two values from a function.
      • Printing one of two values.

      Leave a Reply

      Your email address will not be published. Required fields are marked *