1

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_validas.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_validas.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
3
34890Puntos
5 años

Hola Alejandro! Excelente post! Muchas gracias, te gustaría que lo volvamos blogpost? para que aparezca en el blog de platzi?

1
14221Puntos
5 años

Hola Ricardo.

Sería excelente. Lo realmente importante de esta información es que mucha gente se beneficie de ella y puedan aportar para mejorarla con sus comentarios y sugerencias.

1
14221Puntos
5 años

Veo unos detalles en los códigos que puse como ejemplo y habría que corregirlos

  1. En el ciclo while, la intensión era mostrar la variable que está iterando (osea “c”) para que se note con que valores se está validando la expresión. Por error puse a que imprimiera “a”

  2. En el ejemplo de las expresiones no numéricas, volví a cargar la imagen del ejemplo de las cantidades numéricas. Se debería cambiar para que el ejemplo sea válido y dentro del contexto correcto

Estas correcciones serían necesarias antes de compartir la información en el blog, para que se ejemplifiquen bien los conceptos