fbpx
Wikipedia

Sentencia condicional

En programación, una sentencia condicional es una instrucción o grupo de instrucciones que se pueden ejecutar o no en función del valor de una condición.

Diágrama de flujo de If-Then-Else
Diágrama de flujo de "If–Then–Else" anidado

Los tipos más conocidos de sentencias condicionales son el SI..ENTONCES (if..then), el SI..ENTONCES..SI NO (if..then..else) y el SEGÚN (case o switch), aunque también podríamos mencionar al manejo de excepciones como una alternativa más moderna para evitar el "anidamiento" de sentencias condicionales.

Las sentencias condicionales constituyen, junto con los bucles, los pilares de la programación estructurada, y su uso es una evolución de una sentencia en lenguaje ensamblador que ejecutaba la siguiente línea o no en función del valor de una condición.

Lanzamiento de errores

En el caso de algoritmos donde se ejecutan muchas instrucciones que pueden devolver errores se vuelve a tener el caso de condicionales añadidos que dificultan la lectura. Por ejemplo:

Archivo f SI (LeerArchivo(f)) ENTONCES SI (AvanzarArchivo(f)) ENTONCES SI (ObtenerEntero(Leer(f)) ENTONCES Cuerpo SINO  Imprimir "El valor no es entero" FIN SI SINO Imprimir "Se llegó al fin del archivo" FIN SI SINO Imprimir "No se pudo abrir el archivo" FIN SI CerrarArchivo(f) 

Si bien es un problema que este anidamiento puede llegar a ser muy grande, la principal razón para utilizar el lanzamiento de errores es que con el tipo de estructura anterior se pierde la noción del camino principal, y cuesta mucho más encontrar las sentencias de ejecución normal, (en este caso Cuerpo), por la presencia de las condiciones de error que entorpecen la legibilidad.

Algunos lenguajes como Java han tenido esto en cuenta y desarrollaron el lanzamiento de errores, que consiste en separar el tratamiento de errores al final de la instrucción, para no perder de vista el hilo de continuidad. Para esto, los métodos en lugar de devolver un valor lógico (verdadero o falso) para determinar si la operación se efectuó correctamente, deben "lanzar" excepciones.

El código es ejecutado normalmente hasta que ocurre una excepción, en este caso "salta" al manejo de errores adecuado; es decir las sentencias pueden o no ejecutarse, en función de si previamente se haya lanzado un error o no. En algunos casos puede darse que exista código que debe ejecutarse al final, independientemente de si se haya lanzado o no un error (en nuestro caso podría ser la operación de cerrar el archivo para que otros puedan acceder a él), para lo cual también hay sentencias especiales.

INTENTAR LeerArchivo(f) AvanzarArchivo(f) ObtenerEntero(Leer(f)) Cuerpo CAPTURAR Error1(ExcepciónDeAperturaDeArchivo) Imprimir "No se pudo abrir el archivo" CAPTURAR Error2(ExcepciónDeLecturaDeArchivo) Imprimir "Se llegó al final del archivo" CAPTURAR Error3(ExcepciónDeConversiónDeDatos) Imprimir "El valor no es entero) FINALMENTE CuCerrarArchivo(f) 

A su vez los procedimientos que lanzan excepciones deben contener alguna línea con el siguiente código:

LANZAR TipoExcepción 

El código que llama a una subrutina que puede lanzar un error, tiene dos alternativas: o la trata él mismo (con la estructura anterior) o la "LANZA" a la subrutina superior que la invocó. Algunas veces no es obligatorio tratar estos errores.

En Java la estructura es la siguiente:

try { instrucciones } catch (ClaseDeLaExcepción1 objetoExcepción1) { instruccionesPorError1 } catch (ClaseDeExcepción2 ojbetoExcepción2) { instruccionesPorError2 } finally { instruccionesFinales } 

Enlaces externos

Referencias

  •   Datos: Q817862
  •   Multimedia: Conditional (computer programming)

sentencia, condicional, este, artículo, sección, necesita, referencias, aparezcan, publicación, acreditada, este, aviso, puesto, febrero, 2016, redirige, aquí, para, revista, ciencia, ficción, véase, revista, este, artículo, trata, sobre, sentencia, programaci. Este articulo o seccion necesita referencias que aparezcan en una publicacion acreditada Este aviso fue puesto el 10 de febrero de 2016 If redirige aqui Para revista de ciencia ficcion vease If revista Este articulo trata sobre la sentencia de programacion Para otros usos de este termino vease Si En programacion una sentencia condicional es una instruccion o grupo de instrucciones que se pueden ejecutar o no en funcion del valor de una condicion Diagrama de flujo de If Then Else Diagrama de flujo de If Then Else anidado Los tipos mas conocidos de sentencias condicionales son el SI ENTONCES if then el SI ENTONCES SI NO if then else y el SEGUN case o switch aunque tambien podriamos mencionar al manejo de excepciones como una alternativa mas moderna para evitar el anidamiento de sentencias condicionales Las sentencias condicionales constituyen junto con los bucles los pilares de la programacion estructurada y su uso es una evolucion de una sentencia en lenguaje ensamblador que ejecutaba la siguiente linea o no en funcion del valor de una condicion Lanzamiento de errores EditarVease tambien Switch case En el caso de algoritmos donde se ejecutan muchas instrucciones que pueden devolver errores se vuelve a tener el caso de condicionales anadidos que dificultan la lectura Por ejemplo Archivo f SI LeerArchivo f ENTONCES SI AvanzarArchivo f ENTONCES SI ObtenerEntero Leer f ENTONCES Cuerpo SINO Imprimir El valor no es entero FIN SI SINO Imprimir Se llego al fin del archivo FIN SI SINO Imprimir No se pudo abrir el archivo FIN SI CerrarArchivo f Si bien es un problema que este anidamiento puede llegar a ser muy grande la principal razon para utilizar el lanzamiento de errores es que con el tipo de estructura anterior se pierde la nocion del camino principal y cuesta mucho mas encontrar las sentencias de ejecucion normal en este caso Cuerpo por la presencia de las condiciones de error que entorpecen la legibilidad Algunos lenguajes como Java han tenido esto en cuenta y desarrollaron el lanzamiento de errores que consiste en separar el tratamiento de errores al final de la instruccion para no perder de vista el hilo de continuidad Para esto los metodos en lugar de devolver un valor logico verdadero o falso para determinar si la operacion se efectuo correctamente deben lanzar excepciones El codigo es ejecutado normalmente hasta que ocurre una excepcion en este caso salta al manejo de errores adecuado es decir las sentencias pueden o no ejecutarse en funcion de si previamente se haya lanzado un error o no En algunos casos puede darse que exista codigo que debe ejecutarse al final independientemente de si se haya lanzado o no un error en nuestro caso podria ser la operacion de cerrar el archivo para que otros puedan acceder a el para lo cual tambien hay sentencias especiales INTENTAR LeerArchivo f AvanzarArchivo f ObtenerEntero Leer f Cuerpo CAPTURAR Error1 ExcepcionDeAperturaDeArchivo Imprimir No se pudo abrir el archivo CAPTURAR Error2 ExcepcionDeLecturaDeArchivo Imprimir Se llego al final del archivo CAPTURAR Error3 ExcepcionDeConversionDeDatos Imprimir El valor no es entero FINALMENTE CuCerrarArchivo f A su vez los procedimientos que lanzan excepciones deben contener alguna linea con el siguiente codigo LANZAR TipoExcepcion El codigo que llama a una subrutina que puede lanzar un error tiene dos alternativas o la trata el mismo con la estructura anterior o la LANZA a la subrutina superior que la invoco Algunas veces no es obligatorio tratar estos errores En Java la estructura es la siguiente try instrucciones catch ClaseDeLaExcepcion1 objetoExcepcion1 instruccionesPorError1 catch ClaseDeExcepcion2 ojbetoExcepcion2 instruccionesPorError2 finally instruccionesFinales Enlaces externos EditarSentencias condicionales ejemplos en pseudocodigo XSL XSLT Java JSP PHP Perl Python C C Objective C C Bash Pascal JavaScript Excel Ruby Fortran Velocity ASM Basic Tcl Windows PowerShell Action Script 3 0 Referencias Editar Datos Q817862 Multimedia Conditional computer programming Obtenido de https es wikipedia org w index php title Sentencia condicional amp oldid 136506966, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos