El código es el siguiente:
Código:
#include <iostream>
using namespace std;
int main()
{
unsigned int opcion;
cout<<"[1]\tKilogramos a libras."<<endl<<"[2]\tDolares a pesos.\n";
cout<<endl<<"Escoja la unidad a transformar\n";
cin>>opcion;
while (opcion > 2)
{
cout<<"Escoja una opcion valida (1 o 2)\n";
cin>>opcion;
}
unsigned short kg, lb, dl,ps;
switch (opcion)
{
case 1: cout<<"Ingrese kilogramos\n";
cin>>kg;
cout<<kg<<" kilogramos son "<<(float) (kg/0.45)<<" libras\n";
case 2: cout<<"Ingrese dolares\n";
cin>>dl;
cout<<dl<<" dolares son "<<(float) (dl*500)<<" pesos\n";
}
cin>>opcion; //es para que no se cierre la consola :P
return 0;
}
Cuando pongo opción 1, me pido los kilogramos, me muestra cuantas libras son, pero después de eso me pide que ingrese dolares, siendo que la variable opcion tiene el valor de 1. Si mal no entiendo switch lo que hace es ver el valor de la variable y dependiendo del caso realizar una acción, en este caso si elijo la primera, al terminarse pasa a realizar la segunda, cosa que no quiero y no entiendo por qué sucede. Saludos.using namespace std;
int main()
{
unsigned int opcion;
cout<<"[1]\tKilogramos a libras."<<endl<<"[2]\tDolares a pesos.\n";
cout<<endl<<"Escoja la unidad a transformar\n";
cin>>opcion;
while (opcion > 2)
{
cout<<"Escoja una opcion valida (1 o 2)\n";
cin>>opcion;
}
unsigned short kg, lb, dl,ps;
switch (opcion)
{
case 1: cout<<"Ingrese kilogramos\n";
cin>>kg;
cout<<kg<<" kilogramos son "<<(float) (kg/0.45)<<" libras\n";
case 2: cout<<"Ingrese dolares\n";
cin>>dl;
cout<<dl<<" dolares son "<<(float) (dl*500)<<" pesos\n";
}
cin>>opcion; //es para que no se cierre la consola :P
return 0;
}
PD: Pasa en Microsoft visual Studio y en Dev-cpp