2

コードのwhileループから抜け出すのに問題があります。ユーザーがアイテムの入力を完了したら、qを押して終了します。これは機能せず、qはユーザーによって入力され、ループは中断されません。これを行うためのより良い方法もあれば、それは素晴らしいことです。

#include <stdio.h>
#include "CashRegister.h"
#include <stdlib.h>
#include <iostream>
#include <string>
using namespace std;

CashRegister::CashRegister(void)
{
}

CashRegister::~CashRegister(void)
{
}

void CashRegister::addItem(void)
{
string temp;
int k = 0;
int exit = 0;
CashRegister item[10];

for(int i = 0; i < 10; ++ i)
{
    item[i].price = 0.00;
}

cout << "Enter price of items. Up to 10 maximum\n" << endl;

while(item[9].price != 0.00 || temp != "q")
{
    cout << "Enter price of item number " << k + 1 << "\n" << endl;
    cin >> temp;
    cout << temp << endl;
    double tempPrice = (double)atof(temp.c_str());
    item[k].price = tempPrice;
    cout << "Price of item number " << k + 1 << " is $" << item[k].price << endl;
    ++k;
}

}

4

3 に答える 3

4

whileループは次のように読み取る必要があります。

while(item[9].price != 0.00 && temp != "q")

&&両方の条件が真である間、ループを継続する必要があるため、「しない」と言う必要があります||

于 2012-07-15T17:50:36.227 に答える
2
while(item[9].price != 0.00 || temp != "q")

これが何を言っているか考えてみてください。「価格が0でないか、温度が「q」でないときにループします。」次に、ループを停止するために何が発生する必要があるかを考えます。

于 2012-07-15T17:50:21.547 に答える
0

ループを解除するには、これを使用する必要があります。

while(item[9].price != 0.00 && temp != "q")
{
  // ur stuff
}

item [9] .priceには0.00以外の値が含まれるため、ループが繰り返されます

于 2012-07-15T17:52:30.057 に答える