The Ternary Operator

1-minute read
Made by ChickenFryBytes Studios

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