0
do {
   cout << "Quantity  : ";
   cin >> sale->quantity;
   cout << "Unit Price: ";
   cin >> sale->unitPrice;
   cout << "Taxable   : ";
   cin >> sale->taxStatus;
} while (sale->quantity != 0); 

当我输入0forquantity时,它仍然要求我输入unitPriceand taxStatus,然后它终止。我怎样才能让我的循环在quantity输入后立即终止0

编辑

> echo "" | a.out 
Sale Records 
=============
Quantity  : Unit Price: Taxable   : Quantity  : Unit Price: Taxable   : Quantity  : Unit Price: Taxable   : Quantity  : Unit Price: Taxable   : Quantity  : Unit Price: Taxable   : Quantity  : Unit Price: Taxable   : Quantity  : Unit Price: Taxable   : Quantity  : Unit Price: Taxable   : Quantity  : Unit Price: Taxable   : Quantity  : Unit Price: Taxable   : >
4

4 回答 4

5

您是否尝试过在质量为 0 时告诉它终止?

cin >> sale->quantity;
if (sale->quantity == 0) break;
于 2013-01-21T00:52:24.810 回答
1

您可以通过在之后添加此检查来尽早跳出循环cin >> sale->quantity;

if (sale->quantity == 0)
    break;
于 2013-01-21T00:52:25.050 回答
0

输入 0 后立即终止循环的一种方法quantity是将其余逻辑放入if语句中。

另一种方法是使用 a break,但随后我会将循环更改为 a for(;;)

do请注意,对于循环体末尾的循环,每次循环迭代仅检查一次循环继续条件:它不会连续检查。

于 2013-01-21T00:54:06.497 回答
0

另一种选择是

cout << "Quantity  : ";
cin >> sale->quantity;
while (sale->quantity != 0)
{
   cout << "Unit Price: ";
   cin >> sale->unitPrice;
   cout << "Taxable   : ";
   cin >> sale->taxStatus;
   // next iteration for Quantity
   cout << "Quantity  : ";
   cin >> sale->quantity;
} 

但我不确定您是否在每次迭代中对销售结构做任何事情。如果是这样,您需要在评论之前添加该代码// next iteration for Quantity

于 2013-01-21T01:24:43.890 回答