Fall through es un tipo de error que ocurre en varios lenguajes de programación como C, C++, Java, Dart, etc. Ocurre en declaraciones de cambio de caso donde cuando olvidamos agregar una declaración de ruptura y en ese caso el flujo de control salta a la siguiente línea.
“Si no aparece una interrupción, el flujo de control caerá a través de todos los casos que siguen al caso verdadero
hasta que se alcance la interrupción o se alcance el final del cambio”.
Por lo tanto, está claro que la forma más básica de crear la situación de fracaso es omitir las declaraciones de interrupción en Dart, pero en Dart, dará un error de compilación.
Ejemplo 1: Saltarse sentencias de descanso
Dart
// This code will display error void main() { int gfg = 1; switch ( gfg ){ case 1:{ print("GeeksforGeeks number 1"); } case 2:{ print("GeeksforGeeks number 2"); } case 3:{ print("GeeksforGeeks number 3"); } default :{ print("This is default case"); } } }
Error:
main.dart:4:5: Switch case may fall through to the next case. case 1:{ ^ main.dart:7:5: Switch case may fall through to the next case. case 2:{ ^ main.dart:10:5: Switch case may fall through to the next case. case 3:{ ^
Sin embargo, permite omitir la declaración de ruptura en el caso cuando solo hay una declaración de caso definida.
Nota: Cabe señalar que Dart permite casos vacíos.
Ejemplo 2: Proporcionar una caja vacía.
Dart
void main() { // Declaring value // of the variable int gfg = 2; switch ( gfg ){ case 1:{ print("GeeksforGeeks number 1"); } break; // Empty case causes fall through case 2: case 3:{ print("GeeksforGeeks number 3"); } break; default :{ print("This is default case"); } break; } }
Producción:
GeeksforGeeks number 3
En el código anterior, si inicializamos el valor de gfg = 3, la salida no cambiará. Otra forma de lograr el fracaso es mediante el uso de continuar en lugar de romper la declaración en el caso de cambio.
Ejemplo 3: usar continuar en lugar de romper
Dart
void main() { int gfg = 1; switch ( gfg ){ case 1:{ print("GeeksforGeeks number 1"); } continue next; next:case 2:{ print("GeeksforGeeks number 2"); } break; case 3:{ print("GeeksforGeeks number 3"); } break; default :{ print("This is default case"); } break; } }
Producción:
GeeksforGeeks number 1 GeeksforGeeks number 2
Nota: Debe tenerse en cuenta que si no declaramos la etiqueta con continuar en el código anterior, el código mostrará un error .
Publicación traducida automáticamente
Artículo escrito por aditya_taparia y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA