• Compra una licencia de Windows 10/11 (10€) u Office (18€) al mejor precio u Office al mejor precio. Entra en este post con las ofertas
  • Conoce los Días Naranjas de PcComponentes: descuentos de hasta un 40% en tecnología. Entra en este post con las ofertas
  • ¡Bienvenid@! Recuerda que para comentar en el foro de El Chapuzas Informático necesitas registrar tu cuenta, tardarás menos de 2 minutos y te dará valiosa información además de ayudarte en lo que necesites o pasar un rato agradable con nosotros.

[Introducción al lenguaje de programación C] Estructuras de control (Capítulo VI)

Neur0na2

Timing Attack!
Registrado
13 Feb 2016
Mensajes
115
Puntos
0
En este capítulo comenzaremos con las estructuras de control condicional también llamadas en algunos casos control de flujo de ejecución. Con ambas definiciones nos estamos refiriendo a ejecutar un código u otro según los valores que tengamos en ejecución.

Primero veamos rápidamente más operadores que son realmente útiles en los condicionales:

  • < -> Menor que.
  • > -> Mayor que.
  • == -> Igual que.
  • <= -> Menor o igual que.
  • >= -> Mayor o igual que.
  • % -> Módulo.
  • ++ -> Incremento.
  • -- -> Decremento.
  • ! -> Niega una expresión. Si la expresión es verdadera la hace falsa y viceversa.
  • != -> Distinto que.
  • && (AND) -> Solo verdadero si ambas expresiones son verdaderas.
  • || (OR) -> Solo es falso si ambas expresiones son falsas.

En el capítulo de hoy solo trabajaremos con unos pocos de los operadores vistos.

Supongamos que tenemos el siguiente código:

Código:
#include <stdio.h>

int main(int argc, char *argv[])
{
    int folios;
    
    printf("Escribe la cantidad de folios que tienes encima de la mesa: ");
    scanf("%d", &folios);
    
    if(folios >= 10)
        printf("\nLa mesa debe de ser un desastre\n");
    else
        printf("\nLa mesa empieza a estar desordenada\n");
    
    getch();
    return 0;
}

Vayamos por partes, pero esta vez directamente a la nuevo:

Código:
if(folios >= 10)
        printf("\nLa mesa debe de ser un desastre\n");

El condicional if se interpreta como si "haces esto, te doy lo otro". En resumidas cuentas, si se cumple la condición con lo indicado la condición es ejecutada. De lo contrario, nuestra aplicación no ejecutará la condición.

En en este caso y traduciendo un poco esto al castellano, sería como "si if folios variable es mayor > o igual = a 10 ejecutamos la función printf. Si la condición if engloba más de una sentencia, esta irá entre llaves, lo veremos más adelante.

Código:
else
    printf("\nLa mesa empieza a estar desordenada\n");

El condicional else se interpreta como "de lo contrario". Por lo tanto si la condición if no se cumple nuestra aplicación pasará directamente a else para ejecutar la función printf.

Lo mejor para entender esto rápidamente es crear vosotros un ejemplo muy similar y entenderlo. Ya os digo que puede parecer al principio más complicado de lo que realmente es.

Pasemos a otro ejemplo cuando la condición if engloba más de una sentencia.

Código:
#include <stdio.h>

int main(int argc, char *argv[])
{
    int numeroIntroducido;
    int numeroSecreto = 3;
    
    printf("Adivina el número secreto: (1 al 10): ");
    scanf("%d", &numeroIntroducido);
    
    if(numeroIntroducido < numeroSecreto)
    {
        printf("\nIntroduciste un número menor al secreto\n");
    }
    
    else if(numeroIntroducido > numeroSecreto)
        printf("\nIntroduciste un número mayor al secreto\n");
    
    else if(numeroIntroducido == numeroSecreto)
    {
        printf("\n¡Has acertado el número secreto!\n");
    }
     
    getch();
    return 0;
}

Por partes, esta vez hagamos un pequeño repaso:

Código:
int numeroIntroducido;
int numeroSecreto = 3;

Creamos dos variables, una para saber el número que introduzcamos y otra a la que asignaremos el valor 3 que será el número secreto.

Código:
printf("Adivina el número secreto: (1 al 10): ");

Imprimimos en pantalla "".

Código:
scanf("%d", &numeroIntroducido);

Escaneamos el número dado el tipo de dato y se lo asignaremos a la variable numeroIntroducido.

Código:
if(numeroIntroducido < numeroSecreto)
    {
        printf("\nIntroduciste un número menor al secreto\n");
    }

Ejecutamos condición if, si el número que introducimos es menor al número introducido ejecutamos printf, de lo contrario saltaremos esta condición. Fijaos que abajo van más sentencias que engloban a if por lo que la primera deberá ir entre llaves.

Código:
else if(numeroIntroducido > numeroSecreto)
        printf("\nIntroduciste un número mayor al secreto\n");

Condición else if, "De lo contrario si" el número introducido es menor al número secreto ejecutamos la función printf, de lo contrario volvemos a saltar la condición.

Código:
else if(numeroIntroducido == numeroSecreto)
    {
        printf("\n¡Has acertado el número secreto!\n");
    }

Y por último si el número introducido es igual al número secreto ejecutamos la función printf. Ya no hay más condiciones por lo que alguna de ellas deberá ser cierta en algún momento de la aplicación.

¿Os imagináis que tenemos un montón de condiciones? Puede llegar a ser lioso y un poco desorganizado. Menos mal que tenemos la condición switch.

Y qué mejor que ver esta condición con un ejemplo:

Código:
#include <stdio.h>

int main(int argc, char *argv[])
{
    int numero;
    
    printf("Escribe un número (0 al 5) que quieres que imprima en pantalla: ");
    scanf("%d", &numero);
    
    switch(numero)
    {
        case 0:
            printf("Es el número 0\n");
            break;
        case 1:
            printf("Es el número 1\n");
            break;
        case 2:
            printf("Es el número 2\n");
            break;
        case 3:
            printf("Es el número 3\n");
            break;
        case 4:
            printf("Es el número 4\n");
            break;
        case 5:
            printf("Es el número 5\n");
            break;
        default:
            printf("El número introducido es mayor que 5\n");
            break;
    }
   
    getch();
    return 0;
}

Por partes simplemente a lo que nos interesa:

Código:
switch(numero)
    {
        
    }

Indicamos a la condición switch la variable con la que vamos a interactuar. Esta condición siempre va entre llaves.

Código:
case 0:
    printf("Es el número 0\n");
    break;

La palabra case identifica los casos a los que hagamos referencia. En este caso si el número es 0, ejecuta la función printf. Y break es para detener la ejecución de la instrucción.

Código:
case 1:
    printf("Es el número 1\n");
    break;

Si es el número 1, ejecuta la otra función printf. Y así sucesivamente....

Código:
default:
     printf("El número introducido es mayor que 5\n");
     break;

default hace referencia a una condición que es distinta a todas las anteriores. En este caso solo hemos indicado los casos del 0 al 5, por lo que si introducimos un número que sea mayor que 5 se nos ejecutará esta condición.

Practicando es la mejor manera de entender los condicionales. En el próximo capítulo veremos lo bucles y trabajaremos con más operadores.

Espero como siempre que os haya gustado :eek:k:

Capítulo anterior
Capítulo siguiente
 
Última edición:
Arriba