• Blog
  • Acerca
  • Autor
  • Contacto
  • if else anidados en c++

    Ya había escritos varios posts sobre las condiciones if else en c++, pero algo que hace falta saber es que dentro de una estructura if puede haber otra estructura if tantos veces como sea necesario. Es decir:

    if ( condicion )
    {
      instrucciones
      if ( condicion )
      {
        instrucciones
      }
    }
    else
    {
      if ( condicion )
      {
        instrucciones
      }
      else
      {
        instrucciones
      }
      instrucciones
    }

    ¿Y como para qué? Pues hay algunas situaciones que así lo requieren. Por ejemplo:

    “Si un alumno tiene un promedio mayor o igual a 9 se le hara un 20% de descuento en la colegiatura, si tiene un promedio mayor o igual a 8 pero menor que 9 el descuento será del 10%, si su promedio es menor que 8 pero mayor o igual a 7 el descuento será del 5% y si promedia con 7 o menos no tendrá descuento.”

    La solución de este problema en c++ sería así:

    #include<stdio.h>
    #include<conio.h>
    int main()
    {
      float promedio=0,descuento=0,colegiatura=1500,total=0;
      printf("\n\tCual fue tu promedio?: ");scanf("%f",&promedio);
      if(promedio>=9)
      {
        descuento=0.2;
      }
      else
      {
        if(promedio>=8 && promedio <9)
        {
          descuento=0.1;
        }
        else
        {
          if(promedio>=7 && promedio <8)
          {
            descuento=0.05;
          }
          else
          {
            descuento=0;
          }
        }
      }
      total=colegiatura-colegiatura*descuento;
      printf("\n\tTu colegiatura sera de %.2f",total);
      getch();
    }

    Ya que sabemos esto podemos ahorrarnos algunas llaves {} usando el else if, vean:

    #include<stdio.h>
    #include<conio.h>
    int main()
    {
      float promedio=0,descuento=0,colegiatura=1500,total=0;
      printf("\n\tCual fue tu promedio?: ");scanf("%f",&promedio);
      if(promedio>=9)
      {
        descuento=0.2;
      }
      else if(promedio>=8 && promedio <9)
      {
        descuento=0.1;
      }
      else if(promedio>=7 && promedio <8)
      {
        descuento=0.05;    
      }
      else
      {
        descuento=0;
      }
      total=colegiatura-colegiatura*descuento;
      printf("\n\tTu colegiatura sera de %.2f",total);
      getch();
    }
    1. omar dice:

      Man me sacaste de un apuro…
      se agradece un buennnn …

      los if anidados son la ley …!

    2. italo dice:

      EEE Muy interesante me gustaria conocer mas sobre los vectores y el metodo burbuja… suerte q “DIOS LOS VENDIGA”

    3. freddy dice:

      muy bueno prof

    4. pancho dice:

      esto me es muy util. GRACIAS.

    5. essik dice:

      necesito saber ue es el if
      el else y el
      if else

    6. Diana Lopez dice:

      necesito que me digas como hacer un programa donde pida 3 cantidades y luego mostrarlas en forma ascendente y descendente te lo agradeceria mucho…..

    7. raul dice:

      me sirvio , muchas gracias

    8. cristian dice:

      hola, me gustaria saber por que no funsiona el verdadero de esta pregunta:
      char x
      if (x=”carlos”)
      {
      cuando es verdadero e ingresamos carlos solo va por el falso
      que se puede ghacer para q esta condicion sea valida
      gracias

      • THEbatzuk dice:

        es porque a las variables tipo char solo les cabe un caracter, si tu condición fuera x=’c’ funcionaria (comillas simples). O puedes declarar x como tipo string: string x ; y hacer la condición como tu la hiciste: if(x = “carlos”) con comillas dobles. Aunque ahora que estoy escribiendo esto estoy sospechando que tu pregunta iba enfocada hacia otra cosa ¿no?

        • cristian dice:

          si no deje muy clara la pregunta pero es asi..
          char o[30];
          gotoxy(30,5);cout<<"* 1-RENAULT SANDERO *";
          gotoxy(30,6);cout<<"* 2-TOYOTA COROLA *";
          gotoxy(30,7);cout<<"* 3-VOLWSWAGEN *";
          gotoxy(30,8);cout<<"* 4-CORSA *";
          gotoxy(10,11);cout<>o;
          if(o!=”RENAULT sandero”)
          {
          gotoxy(10,8);cout<>op;
          if(op==1)
          {
          gotoxy(10,10);cout<>p;
          gotoxy(10,11);cout<>c;
          v=p*c;
          d=v*25/100;
          vt=v-d;
          gotoxy(10,13);cout<<"El descuento es..";
          gotoxy(55,13);cout<<d;
          gotoxy(10,14);cout<<"El valor final pagar es..";
          gotoxy(55,14);cout<<vt;
          }
          else
          {
          clrscr();
          gotoxy(10,15);cout<<"Marca de vehiculo incorrecta..";
          }
          ahora le en la variable O le coloque !, y me corre en verdadero, pero ya no en falso todas las palabras que coloque son verdaderas…
          te agradesco la ayuda q me brindas..

    9. FUNEZ dice:

      #include
      using namespace std;
      int main()
      {

      double num_metros,precio,subtotal,descuento,total_pagar,codigo;
      cout<<"**Bienvenidos a empresa maderera**";

      cout<<"productos disponible";
      cout<<"-1.-pino";
      cout<<"-2.-cedro";
      cout<<"-3.-roble";
      cout<>codigo;
      cout<>num_metros;
      if (codigo=1)
      {precio=256;
      subtotal=num_metros*precio;
      descuento=0;
      total_pagar=subtotal-descuento;
      cout<=150)
      {precio=567;
      descuento=(num_metros*precio)*0.30;
      subtotal=(num_metros*precio)-descuento;
      total_pagar=subtotal-descuento;
      cout<<"el producto adqirido es cedro:";}
      else
      {

      if (codigo=2 & num_metros<150)
      {precio=567;
      descuento=0;
      subtotal=(num_metros*precio)-descuento;
      total_pagar=subtotal-descuento;
      cout<<"el producto adqirido es cedro:";}
      else
      {

      if (codigo=3)
      { precio=345;
      subtotal=num_metros*precio;
      descuento=0;
      total_pagar=subtotal-descuento;
      cout<<"el producto adqirido es roble:";}
      }
      }
      }

      cout<<"cantidad de metros comprados:"<<num_metros<<endl;
      cout<<"el descuento es de:"<<descuento<<endl;
      cout<<"subtotal:"<<subtotal<<endl;
      cout<<"total a pagar:"<<total_pagar<<endl;
      cout<<"***gracias por su compra****";

      system("pause");
      return 0;
      }

      TENGO PROBLEMAS CON ESTE PROGRAMITA ALGIEN ME PUEDE AYUDAR

    10. Anthonny dice:

      POR FAVOR AYUDENME A VER QUE ESTÁ MAL..U.U

      #include
      #include
      void main()
      {
      int numhij,prestamo;
      float s;
      cout<>s;
      cout<>numhij;
      if (s>12000 & numhij=0)
      cout<<"se le aprueba el prestamo"<<endl;
      else if(10000<s<12000 & numhij=1)
      cout<<"se le concede el prestamo"<<endl;
      else
      cout<<"no se le concede el prestamo"<<endl;
      else if (10000<s<12000 & numhij=2)
      cout<<"se le concede el prestamo"<<endl;
      else
      cout<<"no se le concede el credito"<<endl;
      else if(8000<s<10000 & numhij=0)
      cout<<"se le concede el prestamo"<<endl;
      else
      cout<<"no se le concede el prestamo"<<endl;
      getch();
      }

    11. lauritaa dice:

      alguien me podria ayudar con este problema de if
      x fiiss se los agradeceria muchiixximoo
      En un hospital se han realizado analisis a pacientes en los ultimos años, con el objetivo de hacer una aproximacion a los costos por paciente.
      se obtuvo un costo diario segun el tipo de analisis, ademas se determina que los pacientes con edad de entre 14 y 22 años implican un costo adicional del 10%
      la siguiente tabla expresa los costos diarios de acuerdo a los analisis realizados.
      Dar solucion al problema que permita calcular y mostrar el costo total que representa un pciente
      tipos de analisis 1=250 2=365 3=500

    12. pollitaa dice:

      super bna onda me ayudo mucho con mi tarea gracias por crear esta pagina enserio muchas gracias

    13. Luis Ramírez dice:

      Como puedo hacer un programa usando if anidado en donde si la persona es mayor o igual a 18 años tiene derecho a hamburguesa y parqueo gratis y es mayor de edad que no obtenga nada, y q este anidado a esto q si tambien es mujer pueda tener bebida y papas gratis, y si no es mujer solo recibe lo primero
      porfa

    14. Luis Ramírez dice:

      si no es mayor de edad no obtiene nada es al final de la segunda linea perdon

    15. milena dice:

      como puedo desarrollar un programa usando condicines sensillas if para el siguiente caso Un cliente ordena cierta cantidad de brochas de cerda, rodillos y sellador; las brochas de cerda tienen un 20% de descuento y los rodillos un 15% de descuento. Los datos que se tienen por cada tipo de artículo son: la cantidad pedida y el precio unitario. Además, si se paga de contado todo tiene un descuento del 7%. Elaborar un programa en C++ que calcule y muestre en pantalla el costo total de la orden, tanto para el pago de contado como para el caso de pago de crédito.

    16. zlcanacuant dice:

      ayuda!!!

      Desarrollar un programa que permita administrar un parqueado de motos y
      carros, teniendo en cuenta las siguientes condiciones:
      · El valor por hora para motos es de $1.000 y para autos $2.000
      · Se debe registrar cada vehículo que ingrese
      · Solicitar el tiempo de permanencia y de acuerdo a ello, calcular el
      costo del servicio e imprimirlo en pantalla.
      · El programa debe funcionar para varios vehículos.
      · Al finalizar el día se debe reportar por pantalla:
      o Cantidad de motos registradas
      o Cantidad de autos registrados
      o Subtotal de ingresos por motos
      o Subtotal de ingresos por autos
      o Total de ingresos por autos y motos
      · Incluir en el programa: comentarios aclaratorios, selectiva doble,
      ciclo for, ciclo while y trabajar con funciones.

    17. ramon dice:

      #include
      #include
      #include
      #include
      main();
      {
      int x;
      printf(“ingrese una opcion del 1 al 13″);
      scanf(“%d”, &x);
      if
      }
      else
      {(“x>=0) && (x<=13)");
      {
      switch(x)
      {
      case 1:
      printf("enero");
      break;
      case 2:
      printf("febrero");
      break;
      case 3:
      printf("marzo");
      break;
      case 4:
      printf("abril");
      break;
      case 5:
      printf ("mayo");
      break;
      case 6:
      printf("junio");
      break;
      case 7:
      printf("julio");
      break;
      case 8.
      printf("agosto");
      break;
      case 9.
      printf("septiembre");
      break;
      case 10.
      printf("octubre");
      break;
      case 11.
      printf("noviembre");
      break;
      case 12.
      printf("diciembre");
      }
      {else}
      printf("ERROR EL MES NO EXISTE");
      }
      getch();
      }

    18. Karl dice:

      Buenas, te felicito por la pagina es muy buena guia para nosotros,soy nuevo y quisiera pedirte si pudieran ayudarme para hacer un codigo en C++ muy simple, es que necesito un programa en donde se ingrese un grupo de 4 numeros y que el resultado sea el mismo, y para los siguientes 4 numeros sea uno mas que el anterior. Asi por ejemplo si se ingresa los numeros 5, 6, 7, 8 el resultado final sea 2 y si se ingresa 9, 10, 11, 12 el resultado sea 3. Gracias

    Hola, escribe aquí tu comentario: