Sentencia condicional

Sentencia condicional
Este artículo trata sobre la sentencia de programación. Para otros usos de este término, véase Si.

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.

Los tipos más conocidos de setencias condicionales son el SI..ENTONCES (if..then), el SI..ENTONCES..SI NO (if..then..elsA) y el SEGÚN (case o switch), aunque también podríamos mencionar al lanzamiento de errores 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 anidados 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

  • programación ejemplos (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)

Wikimedia foundation. 2010.

Игры ⚽ Поможем написать курсовую

Mira otros diccionarios:

  • Condicional (programación) — Un condicional en la programación es una sentencia o grupo de sentencias que puede ejecutarse o no en función del valor de una condición. Los tipos más conocidos de condicionales son el SI ENTONCES (if then), el SI SI NO (if then else) y el SEGÚN …   Enciclopedia Universal

  • Libertad condicional — La libertad condicional es una medida alternativa a una pena privativa de libertad, como la prisión o el arresto domiciliario, que contemplan los ordenamientos jurídicos de algunos países, y que es posible imponer en la sentencia cuando se… …   Wikipedia Español

  • libertad condicional — ► locución DERECHO La que se concede al preso que ha cumplido con buena conducta la mayor parte de su condena, bajo la condición de presentarse de manera periódica ante la autoridad. * * * Libertad condicional bajo supervisión que se otorga a un… …   Enciclopedia Universal

  • Operador ternario — En informática un operador ternario (a veces incorrectamente llamado operador terciario) es un operador que toma tres argumentos. Los argumentos y el resultado puede ser de diferentes tipos. Originalmente proviene de BCPL, cuyo sintaxis… …   Wikipedia Español

  • Vorest — Desarrollador Carlos Vilas Arias www.vorest.com …   Wikipedia Español

  • == — En algunos lenguajes de programación el operador == es una relación binaria que representa una igualdad. Un ejemplo podría ser x == y , con el que se devolverá true si x es igual a y y false si no lo es. El opuesto a == es != y significa… …   Wikipedia Español

  • Bifurcación — (del latín bifurcus, ahorquillado) es la acción de separar algo en varias partes;[1] más específicamente se puede referir a: Matemáticas La Teoría de bifurcaciones, estudia los cambios en la estructura cualitativa o topológica de una familia… …   Wikipedia Español

  • Python — Este artículo trata sobre el lenguaje de programación. Para el grupo de humoristas, véase Monty Python. Para otros usos de este término, véase Pitón. Python Desarrol …   Wikipedia Español

  • Internet Explorer box model bug — Diferencia en cómo el ancho (width) es interpretado entre los modelos de caja de W3C e Internet Explorer en modo de retrocompatibilidad o Quirks mode. El fallo en el modelo de caja de Internet Explorer (en inglés: Internet Explorer box model bug) …   Wikipedia Español

  • Lógica de bucle temporal — La Lógica de Bucle Temporal (aunque recurrencia temporal es mas correcto) es un sistema de computación que requiere una computadora capaz de enviar datos hacia atrás en el tiempo, se fundamenta en el Principio de autoconsistencia de Novikov para… …   Wikipedia Español

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”