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

に入る0quantity、それでもとを要求され、unitPrice終了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になるとすぐにループを終了する1つの方法は、そのロジックの残りをステートメントquantity内に配置することです。if

別の方法は、を使用することですbreakが、ループをに変更しますfor(;;)

doループ継続条件は、ループ本体の最後にあるループについて、ループの反復ごとに1回だけチェックされることに注意してください。継続的にチェックされるわけではありません。

于 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 に答える