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

当我进入0quantity,但它仍然要求我要unitPricetaxStatus,然后将其终止。如果quantity输入的是0,我怎么能让我的环路终止?c + +停止做while循环,一旦条件满足

编辑

> 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 : > 
+0

当您说'echo“时,您的程序是否工作? 。/ prog'? –

+0

是的,它工作,它吐出了很多值,我已经更新OP。 – eveo

+0

这是正确的行为吗?即你希望它如何表现? –

回答

5

你试过告诉它终止时的质量为0?

cin >> sale->quantity; 
if (sale->quantity == 0) break; 
+0

工作,不知道这是可能的,新的C++!谢谢。 – eveo

1

您可以提前通过后cin >> sale->quantity;

if (sale->quantity == 0) 
    break; 
0

一种方式添加此检查,以终止循环,只要quantity进入中断循环的是0,是把这种逻辑的其余部分在if声明中。

另一种方法是使用break,但后来我将环路更改为for(;;)

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

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

相关问题