The Ternary Operator

1-minute read

Sometimes we will want to set the value of a variable based on if a condition is fulfilled. In the example below, the value of the variable is_adult is set to 1 if the person is at least 18 otherwise it must be set to 0:

#include <stdio.h>

int main(void){
    int age;
    printf("Please enter your age: ");
    scanf("%d",&age);
    int is_adult;
    if (age>=18){
        is_adult = 1;
    }else{
        is_adult = 0;
    }
    printf("Is adult: %d\n",is_adult);
    return 0;
}
without-ternary.c
Copy

This can be condensed using the ternary operator. The basic format is:


datatype variable = condition?value_when_true:value_when_false;

Our code above can be refactored to give:

#include <stdio.h>

int main(void){
    int age;
    printf("Please enter your age: ");
    scanf("%d",&age);
    int is_adult = (age>=18)?1:0;
    printf("Is adult: %d\n",is_adult);
    return 0;
}
with-ternary.c
Copy

Happy coding!

Support us via BuyMeACoffee