Falla en C++

a Debido a esto, cuando cualquier caso coincide con el valor especificado, el control pasa a los casos posteriores hasta que se encuentra una declaración de interrupción. En C++ , el error no se encuentra en fallas , pero en lenguajes como Dart , ocurre un error cada vez que ocurre una falla .

No siempre es necesario para evitar fallas , pero también se puede usar como una ventaja.

Programa 1:

A continuación se muestra el programa para ilustrar cómo se produce la falla:

C++

// 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;
}
Producción:

this is two 
this is three 
this is default

Explicación: en el código anterior, no hay una declaración de interrupción, por lo que después de hacer coincidir con el segundo caso, el control fallará y las declaraciones posteriores también se imprimirán.

¿Cómo evitar la caída ?

Para evitar fallas, la idea es usar una declaración de interrupción después de todos y cada uno de los casos para que, después de hacer coincidir, salga de la declaración de cambio y el control vaya a la declaración junto a la declaración de cambio.

Programa 2:

A continuación se muestra el programa para ilustrar cómo evitar la caída:

C++

// 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;
}
Producción:

this is two

Publicación traducida automáticamente

Artículo escrito por coder_nero y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *