es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Bucle while en C++

Chicos, Necesito ayuda con respecto al siguiente código. Quiero agregar un bucle while en el que el usuario siga obteniendo la declaración “else” hasta que el usuario cumpla con la condición “if” o “else-if”. En otras palabras, el programa solo debería terminar cuando el usuario escriba ‘g’ o ‘G’ o ‘b’ o ‘B’. De lo contrario, debería seguir mostrando la declaración “else” y preguntando nuevamente por el valor correcto.

“`c++
#include<iostream>
using namespace std;

int main()
{
string item;
float price;
int quantity;
float total;
char experience;

<pre><code>cout << "Escribe el nombre del artículo que deseas comprar: " << endl;
getline(cin, item);

cout << "¿Cuál es el precio de " << item << " en dólares? " << endl;
cin >> price;

cout << "¿Cuál es la cantidad de " << item << "? " << endl;
cin >> quantity;

total = price * quantity;

cout << "Tu factura total por " << quantity << " " << item << " es " << total << "$" << endl << endl;

cout << "¿Cómo fue tu experiencia de compra? Escribe (G) si fue buena y (B) si fue mala" << endl;
cin >> experience;

if (experience == 'g' || experience == 'G')
{
cout << "Agradecemos tus comentarios ¡GRACIAS por comprar! :)";
}
else if (experience == 'b' || experience == 'B')
{
cout << "Lamentamos la mala experiencia, mejoraremos la próxima vez. ¡GRACIAS por comprar! :)";
}
else
{
cout << "Escribe 'G' si fue buena y 'B' si fue mala";
}
</code></pre>

}
“`

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para agregar un bucle while que seguirá solicitando al usuario hasta que ingrese ‘g’, ‘G’, ‘b’ o ‘B’, podemos envolver la declaración if-else existente en un bucle while que verifique estas condiciones.

    Aquí está el código modificado:

    “`c++
    #include
    using namespace std;

    int main()
    {
    string item;
    float price;
    int quantity;
    float total;
    char experience = ‘\0’; // inicializa la experiencia como un carácter nulo

    cout << "Escribe el nombre del artículo que deseas comprar:" << endl;
    getline(cin, item);
    
    cout << "¿Cuál es el precio de " << item << " en dólares $ ?" << endl;
    cin >> price;
    
    cout << "¿Cuál es la cantidad de " << item << "?" << endl;
    cin >> quantity;
    
    total = price*quantity;
    
    cout << "Tu factura total por " << quantity << " " << item << " es " << total << "$" << endl << endl;
    
    // sigue solicitando al usuario hasta que ingrese 'g', 'G', 'b' o 'B'
    while (experience != 'g' && experience != 'G' && experience != 'b' && experience != 'B')
    {
        cout << "¿Cómo fue tu experiencia de compra? Escribe (G) si fue buena y (B) si fue mala" << endl;
        cin >> experience;
    
        if (experience == 'g' || experience == 'G')
        {
            cout << "Agradecemos tus comentarios ¡GRACIAS por comprar :)";
        }
        else if (experience == 'b' || experience == 'B')
        {
            cout << "Lamentamos la mala experiencia, mejoraremos la próxima vez ¡GRACIAS por comprar :)";
        }
        else
        {
            cout << "Escribe \"G\" si fue buena y \"B\" si fue mala";
        }
    }
    
    return 0;
    

    }
    “`

    Ahora, el programa seguirá solicitando al usuario su experiencia de compra hasta que ingrese ‘g’, ‘G’, ‘b’ o ‘B’. Si el usuario proporciona cualquier otra entrada, el programa seguirá mostrando el mensaje “Escribe “G” si fue buena y “B” si fue mala”.

Comments are closed.