error de Loop Infinito en Menu de Programa
Publicado por Jorge (2 intervenciones) el 05/07/2018 20:44:13
Estoy intentando hacer un programa en c++ donde en caso de que la opción introducida por el usuario no sea válida, le permita volver a meter alguna opción en vez de que se cierre el programa, además de que le permita volver a ejecutar el programa si quiere hacer una operación diferente, el problema está en que si entra al loop de "opción no válida" no sale de ahi aunque se introduzca una opción válida :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
main(void){
int opcionEn;
char NSCa;
cout << "programa para encontrar o evaluar numeros triangulares." << endl << endl;
do{
cout << "1. Encontrar el numero triangular \"x\" dado por \"n\" numero de repeticiones " << endl;
cout << "2. Saber si un numero es triangular" << endl << "3. Conocer el numero triangular mas cercano a \"x\" numero" << endl;
cout << "introduce el numero de operacion que deseas hacer: ";
cin >> opcionEn;
if((opcionEn==1) || (opcionEn==2) || (opcionEn==3))
menuFnEn(opcionEn);
else{
//============ No sale de este Loop =============//
while((opcionEn != 1) || (opcionEn != 2) || (opcionEn != 3)){
cout << endl <<"la opcion no es valida, vuelve a intentar: ";
cin >> opcionEn;
if((opcionEn==1) || (opcionEn==2) || (opcionEn==3)){
menuFnEn(opcionEn); //= Se ejecuta, pero regresa al inicio del loop en vez de salir
}
}
}
cout << endl << endl << "deseas hacer algo mas? (s/S)";
cin >> NSCa;
}while((NSCa=='s') || (NSCa=='S'));
cout << "presiona enter para cerrar el programa";
}
Valora esta pregunta


0