C - Switch Statement

switch selects a branch based on the value of an integral expression (e.g., int, char). Use it when comparing a single variable to many constants.

Learning Objectives

  • Use switch with case, break, and default.
  • Understand fall-through and when it’s intentional.

Prerequisites

Example

#include <stdio.h>

int main(void) {
    char op = '+';
    int a = 2, b = 3, result = 0;
    switch (op) {
      case '+': result = a + b; break;
      case '-': result = a - b; break;
      case '*': result = a * b; break;
      case '/': result = (b != 0) ? a / b : 0; break;
      default:  printf("unknown op\n"); break;
    }
    printf("%d\n", result);
}

Common Pitfalls

  • Missing break causes fall-through into the next case.
  • Using non-integral types in switch expressions (not allowed in C).

Checks for Understanding

  1. What does the default label do?
Show answers
  1. Handles any case not matched by the listed case labels.