Dev - C++ - Porque se ejecuta el cuerpo del bucle while sin evaluar la condicion?

 
Vista:

Porque se ejecuta el cuerpo del bucle while sin evaluar la condicion?

Publicado por White_Walker (1 intervención) el 15/10/2019 23:36:53
Hola, tengo una duda con el siguiente programa en el cual se piden dos numeros y se muestra un menu con las opciones Sumar, Restar, Multiplicar ,Dividir y Salir del programa; entonces se elige el numero de la opcion y se realiza la operacion correspondiente, luego se vuelve a mostrar el menu. El programa funciona pero mi duda es porque se ejecuta el cuerpo del bucle sin evaluar la condicion, ya que antes de entrar al ciclo while no se evalua la variable. Aca les dejo el codigo:

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
#include<iostream>
using namespace std;
int main(){
	float a,b,suma,resta,producto,cociente;
	int opcion;
	cout<<"\nIntroduzca el primer numero: ";cin>>a;
	cout<<"\nIntroduzca el segundo numero: ";cin>>b;
 
    while(opcion!=5){
 
		cout<<"\nEstas son las operaciones que puede realizar:"<<endl;
		cout<<"\n1 Sumar \n2 Restar \n3 Multiplicar \n4 Dividir \n5 Terminar programa \n";
 
		cout<<"\nElija una opcion: ";cin>>opcion;
 
		switch(opcion){
			case 1: suma=a+b; cout<<"\nLa suma es: "<<suma; break;
			case 2: resta=a-b; cout<<"\nLa resta es: "<<suma; break;
			case 3: producto=a*b; cout<<"\nEl producto es: "<<suma; break;
			case 4:
				if(b==0)
					cout<<"\nEl divisor no puede ser cero.";
				else{
					cociente=a/b;
					cout<<"\nEl cociente es: "<<cociente;
				}
			break;
			case 5: cout<<"\nPrograma terminado."; break;
			default: cout<<"\nDebe elegir una de las opciones del menu."; break;
 
		}
 
    }
 
}

Tambien les adjunto el archivo fuente.Gracias y espero su respuesta.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alfil
Val: 4.344
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Porque se ejecuta el cuerpo del bucle while sin evaluar la condicion?

Publicado por Alfil (1444 intervenciones) el 16/10/2019 07:21:31
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
40
41
42
43
44
45
#include <iostream>
 
using namespace std;
 
int main()
{
    float a, b, suma, resta, producto, cociente;
    int opcion;
 
    cout << "\nIntroduzca el primer numero: "; cin >> a;
    cout << "Introduzca el segundo numero: "; cin >> b;
 
    do{
 
        cout << "\nEstas son las operaciones que puede realizar:"
             << "\n1 Sumar"
             << "\n2 Restar"
             << "\n3 Multiplicar"
             << "\n4 Dividir"
             << "\n5 Terminar programa"
             << "\n==================="
             << "\nElija una opcion: "; cin >> opcion;
 
        switch( opcion ){
 
            case 1: suma = a + b; cout << "\nLa suma es: " << suma << endl;; break;
            case 2: resta = a - b; cout << "\nLa resta es: " << resta << endl; break;
            case 3: producto = a * b; cout<< "\nEl producto es: " << producto << endl; break;
            case 4:
                if( b == 0 )
                    cout << "\nEl divisor no puede ser cero." << endl;
                else{
                cociente = a / b;
                cout << "\nEl cociente es: "<< cociente << endl;
                }
                break;
            case 5: cout << "\nPrograma terminado." << endl; break;
            default: cout << "\nDebe elegir una de las opciones del menu." << endl; break;
 
        }
 
    } while( opcion != 5 );
 
    return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar