Skip to content
Related Articles

Related Articles

Fallthrough in C++
  • Difficulty Level : Easy
  • Last Updated : 13 Jan, 2021

Fall through is a type of error that occurs in various programming languages like C, C++, Java, Dart …etc. It occurs in switch-case statements where when we forget to add a break statement and in that case flow of control jumps to the next line. Due to this when any case is matched with the specified value then control falls through to subsequent cases until a break statement is found. In C++, the error is not found on fallthrough but in languages like Dart, an error occurs whenever a fallthrough occurs.

It is not always necessary to avoid fallthrough, but it can be used as an advantage as well.

Program 1:

Below is the program to illustrate how fall-through occurs:

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program to illustrate
// Fallthrough in C++
#include <iostream>
using namespace std;
  
// Driver Code
int main()
{
    int n = 2;
  
    // Switch Cases
    switch (n) {
    case 1: {
        cout << "this is one \n";
    }
    case 2: {
        cout << "this is two \n";
    }
    case 3: {
        cout << "this is three \n";
    }
    default: {
        cout << "this is default \n";
    }
    }
  
    return 0;
}

chevron_right


Output:



this is two 
this is three 
this is default

Explanation: In the above code, there is no break statement so after matching with the 2nd case the control will fall through and the subsequent statements will also get printed.

How to Avoid Fall Through?

To avoid Fall through, the idea is to use a break statement after each and every case so that after matching it goes out of the switch statement and control goes to the statement next to the switch statement.

Program 2:

Below is the program to illustrate how to avoid the fall through:

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program to illustrate how to
// avoid fall through
#include <iostream>
using namespace std;
  
// Driver Code
int main()
{
    int n = 2;
  
    // Switch Cases
    switch (n) {
    case 1: {
        cout << "this is one \n";
        break;
    }
  
    case 2: {
        cout << "this is two \n";
  
        // After this break statement
        // the control goes out of
        // the switch statement
        break;
    }
    case 3: {
        cout << "this is three \n";
        break;
    }
    default: {
        cout << "this is default \n";
        break;
    }
    }
  
    return 0;
}

chevron_right


Output:

this is two

Attention reader! Don’t stop learning now. Get hold of all the important C++ Foundation and STL concepts with the C++ Foundation and STL courses at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up
Recommended Articles
Page :