我的代码中出现问题时遇到问题。如果用户输入了项目,我希望他们按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;
}
}
答案 0 :(得分:4)
你的while循环需要阅读:
while(item[9].price != 0.00 && temp != "q")
当两个条件都为真时,循环需要继续,因此您需要说&&
而不是||
。
答案 1 :(得分:2)
while(item[9].price != 0.00 || temp != "q")
考虑一下这是什么意思。 “循环,而价格不是0 或临时不是”q“。”现在考虑为此停止循环必须发生的事情。
答案 2 :(得分:0)
你应该用它来打破循环:
while(item[9].price != 0.00 && temp != "q")
{
// ur stuff
}
循环将迭代,因为 item [9] .price 将包含除0.00以外的某些值