3

Expresiones válidas en instrucciones de control de flujo en C

Las instrucciones de control de flujo, nos permiten tomar decisiones para ejecutar una parte de nuestro código diseñada para una situación en particular. Definir las condiciones correctas, es clave para el éxito de nuestro programa

Lo más común es que las condiciones que definimos sean expresiones que tienen un valor de verdad, es decir, podemos afirmar que son verdaderas o falsas.

if(a>b)while(contador <50)if(4==c)

Sin embargo, no solo las expresiones que tienen un valor de verdad son válidas como condiciones de nuestras instrucciones de control. También es posible que la expresión sean simplemente valores que no tienen un valor de verdad en si mismos.

while(5)

Por ejemplo, de la expresión anterior no podemos afirmar que el 5 sea verdadero o falso, pero aún así la expresión sigue siendo válida, y podrá ser evaluada por C para tomar una decisión.

Los valores recibidos como expresión serán aquellos que puedan estar contenidos en una variable (enteros, decimales, caracteres, cadenas de caracteres, archivos, etc)

int a=10;if (a){
	printf("Verdadero");
	}

En el ejemplo anterior la expresión que será evaluada como condición es una variable, cuyo valor es un número entero. Al ejecutar ese código, el resultado será un mensaje en pantalla con la palabra “Verdadero”. Pero entonces surge la pregunta: ¿Cómo interpreta C una expresión que no tiene un valor de verdad? ¿En estos casos, cual es la condición que se evalúa para cambiar el flujo de nuestro programa?

Para responder a estas preguntas, debemos tener en cuenta dos casos:

1. Expresiones con valor numérico:

Las expresiones que serán evaluadas como cantidades numéricas pueden ser valores literales ( 1, -5 , 0 , 3.1416 , -20.2, 102345 ), caracteres individuales (a, b, c, A, B, C) (Nota: los caracteres en esencia son valores enteros entre 0 y 255 en codificación ASCII), variables que almacenan valores numéricos, u operaciones cuyo resultado sea numérico.

Cuando la expresión recibida por una instrucción de control es interpretada como un valor numérico , lo que hace C es compararla con cero (0).

Cualquier valor diferente de cero (0), es interpretado como verdadero y se ejecutará todo el código dentro de la instrucción de control

Únicamente si el valor es cero (0), será interpretado como falso y el código dentro de la instrucción de control no se ejecutará

expresiones_numericas.png

2. Expresiones cuyo valor no es numérico:

En general cualquier valor no numérico que contenga una variable puede ser evaluado: cadenas de caracteres (“Platzi”, “programacion”, “python”), tipos de datos definidos por el usuario, archivos, etc.

Cuando la expresión recibida es un valor no numérico, lo que hace C es compararla con el valor NULL (vacío, sin ningún valor).

Cualquier valor diferente de NULL , es interpretado como verdadero y se ejecutará todo el código dentro de la instrucción de control

Únicamente si el valor es NULL , será interpretado como falso y el código dentro de la instrucción de control no se ejecutará

expresiones_string.png

Ahora queda claro como evalúa C una expresión que sirve como condición en una instrucción de control de flujo. Si la información le pareció útil, comparta el enlace de este tutorial para que otros estudiantes de la comunidad puedan conocerla.

Quedan todos invitados a compartir sus opiniones, sugerencias o aclaraciones.

Escribe tu comentario
+ 2