2017-11-21 13 views
0

私はforループを持っています。ここで、数量を入力すると、入力された量の量だけループが実行されます。しかし、残念なことに出力サマリには1つの出力しか表示されません。C++:ネストされたスイッチケース

たとえば、ユーザーが数量2を入力すると、ピザ、サイズ、および追加を選択するループは2回実行されますが、この特定の行のサマリ出力cout << sizetype << "/t" << pizzatype << "/t" << price << endl;は1つの出力のみを表示します。それにもかかわらず、ユーザーが入力した出力の両方を表示したい。

これに助けが必要です。

case 2: 
 
    \t \t 
 
      cin >> quantity; 
 
      for(int i=0; i<quantity; i++) 
 
    \t \t \t cout << "**Pizza Favourites**" << endl; 
 
    \t \t \t cout << "1. Italian Aloha" << endl; 
 
    \t \t \t cout << "2. Vegi Lover" << endl; 
 
    \t \t \t cout << "3. Ocean Delite" << endl << endl; 
 
    \t \t \t cout << "Choose Your Pizza (Enter Integer 1-3 Only) : "; 
 
    \t \t \t cin >> pizza; 
 
    \t \t \t switch (pizza) 
 
    \t \t \t { 
 
    \t \t \t case 1: 
 
    \t \t \t \t cout << "You've ordered Italian Aloha Pizza" << endl; 
 
    \t \t \t \t pizzatype = "Italian Aloha Pizza"; 
 
    \t \t \t \t break; 
 
    \t \t \t case 2: 
 
    \t \t \t \t cout << "You've ordered Vegi Lover Pizza" << endl; 
 
    \t \t \t \t pizzatype = "Vegi Lover Pizza"; 
 
    \t \t \t \t break; 
 
    \t \t \t case 3: 
 
    \t \t \t \t cout << "You've ordered Ocean Delite Pizza" << endl; 
 
    \t \t \t \t pizzatype = "Ocean Delite Pizza"; 
 
    \t \t \t \t break; 
 
    \t \t \t default: 
 
    \t \t \t \t cout << "Invalid Input" << endl; 
 
    \t \t \t \t break; 
 
    \t \t \t } 
 

 
    \t \t \t cout << "**Pizza Sizes**" << endl; 
 
    \t \t \t cout << "1. Regular (R)" << endl; 
 
    \t \t \t cout << "2. Large (L)" << endl; 
 
    \t \t \t cout << "3. X-Large (X)" << endl << endl; 
 
    \t \t \t cout << "Choose Your Pizza Size (Enter Integer 1-3 Only) : "; 
 
    \t \t \t cin >> size; 
 
    \t \t \t switch (size) 
 
    \t \t \t { 
 
    \t \t \t case 1: 
 
    \t \t \t \t cout << "You've Chose Regular Sized Pizza" << endl; 
 
    \t \t \t \t sizetype = "Regular"; 
 
    \t \t \t \t price = newRegular; 
 
    \t \t \t \t break; 
 
    \t \t \t case 2: 
 
    \t \t \t \t cout << "You've Chose Large Sized Pizza" << endl; 
 
    \t \t \t \t sizetype = "Large"; 
 
    \t \t \t \t price = newLarge; 
 
    \t \t \t \t break; 
 
    \t \t \t case 3: 
 
    \t \t \t \t cout << "You've Chose X-Large Sized Pizza" << endl; 
 
    \t \t \t \t sizetype = "X-Large"; 
 
    \t \t \t \t price = newXlarge; 
 
    \t \t \t \t break; 
 
    \t \t \t default: 
 
    \t \t \t \t cout << "Invalid Input" << endl; 
 
    \t \t \t \t break; 
 
    \t \t \t } 
 
} 
 
    \t \t \t cout << "**Add On**" << endl; 
 
    \t \t \t cout << "Do You Want To Add On Extra Cheese ? (Enter Y for Yes and N for No) : "; 
 
    \t \t \t cin >> yesNo; 
 
    \t \t \t switch (yesNo) 
 
    \t \t \t { 
 
    \t \t \t case 'Y': 
 
    \t \t \t \t cout << "More Cheese, More Fun !" << endl; 
 
    \t \t \t \t cheesePrice = newCheese; 
 
    \t \t \t \t break; 
 
    \t \t \t case 'N': 
 
    \t \t \t \t cout << "No Extra Cheese Required !" << endl; 
 
    \t \t \t \t cheesePrice; 
 
    \t \t \t \t break; 
 
    \t \t \t default: 
 
    \t \t \t \t cout << "Invalid Input" << endl; 
 
    \t \t \t \t break; 
 
    \t \t \t } 
 

 
    \t \t \t cout << "WONDER PIZZA" << endl; 
 
    \t \t \t cout << "************" << endl; 
 
    \t \t \t cout << sizetype << "/t" << pizzatype << "/t" << price << endl; 
 
    \t \t \t cout << "Extra Cheese : " << cheesePrice << endl; 
 
    \t \t \t total = price + cheesePrice; 
 
    \t \t \t cout << "Total Payment : " << total << endl; 
 
    \t \t \t cout << "Please Insert Your Payment : " << payment << endl; 
 
    \t \t \t change = payment - total; 
 
    \t \t \t cout << "Change" << change << endl; 
 
    \t \t \t break;

+0

サブ関数を作成すると読みやすくなります。 – Jarod42

+1

*絶対にパスワードをハードコードしないでください。例外はありません。 – Bathsheba

+0

あなたのエクササイズシートを投稿するだけではありません!あなたが理解していないことを教えてください。あなたを助けることができるかもしれませんが、これは宿題補助のためのサイトではありません。 – Detonar

答えて

0

はい、あなたは外switch文のcase内部巣switch声明をすることができます。

内側casebreakは内側switchのコンテキストになります。

(あなたの質問に答えてもらえませんか?ご質問でしたか?)

関連する問題