2015-07-10 9 views
-4

Im делает забавную программу о заказе гамбургеров и соды. Я сделал все без тестирования, и он работает неправильно.Программа не работает должным образом

Код:

#include <iostream> 
using namespace std; 

int orderDrinks(); 
int orderBurgers(); 

int main() 
{ 
    orderBurgers(); 
    orderDrinks(); 
    return 0; 
} 
int orderBurgers() 
{ 
    bool(orderBurgersLoop); 
    while (orderBurgersLoop = true) 
    { 
     cout << "How many burgers would you like to order?" << endl; 
     int burgersAmount; 
     cin >> burgersAmount; 

     bool(burgersAmountLoop); 
     while (burgersAmountLoop = true) 
     { 
      if (burgersAmount > 1) 
       cout << "You ordered " << burgersAmount << " burgers. We will notice you when they are done." << endl; 
      else if (burgersAmount = 1) 
       cout << "You ordered " << burgersAmount << " burger. We will notice you when it's done!" << endl; 
      else if (burgersAmount <= 0) 
       cout << "Are you sure?" << endl; 
      char orderBurgersLeaveOrStay; 
      cin >> orderBurgersLeaveOrStay; 
      bool(orderBurgersLeaveOrStayLoop); 
      while (orderBurgersLeaveOrStayLoop = true) 
      { 
       if (orderBurgersLeaveOrStay = 'Yes') 
        orderBurgersLoop = false; 
       if (orderBurgersLeaveOrStay = 'No') 
       { 
        orderBurgersLeaveOrStayLoop = false; 
        burgersAmountLoop = false; 
        orderBurgersLoop = false; 
       } 
      } 
     } 
    } 
    return 0; 
} 
int orderDrinks() 
{ 
    cout << "Would you like to order anything to drink?" << endl; 
    char orderDrinksOption; 
    cin >> orderDrinksOption; 

    bool(orderDrinksLoop); 
    while (orderDrinksLoop = true) 
    { 
     if (orderDrinksOption = 'Yes') 
     { 
      cout << "How many drinks would you like to order?" << endl; 
      int drinksAmount; 
      cin >> drinksAmount; 
      if (drinksAmount = 1) 
       cout << "You ordered " << drinksAmount << " drinks. We will notice you when they are done!" << endl; 
      else if (drinksAmount > 1) 
       cout << "You ordered " << drinksAmount << " drink. We will notice you when it's done!" << endl; 
     } 
     if (orderDrinksOption = 'No') 
      orderDrinksLoop = false; 
     else 
      cout << "Yes or No?"; 
    } 
    return 0; 
} 

На первый вопрос, если я типа 0 печатает назад «Вы заказали 1 гамбургер, блабла», и он просто не работает, как я хотел. Что я делаю (пишу) неправильно?

+0

«и он просто не работает, как я хотел, чтобы она» - это на самом деле не говорят нам много. Что конкретно работает/не работает, вне его выводится 1? – user2366842

+0

Добро пожаловать в StackOverflow. Пожалуйста, используйте более описательное название. Пожалуйста, опишите вашу проблему в вопросе, а не только «не работает как нужно». Что такое «желание», что он на самом деле делает и каким образом это отличается? что ты уже испробовал? –

+1

«Я сделал все без тестирования», насколько он хорош. Просмотрите свою логику шаг за шагом, а затем снова отправьте сообщение, пожалуйста, мы не здесь, чтобы сделать ваш hw. –

ответ

1

Все ваши сравнения используют неправильный оператор

burgersAmountLoop = true 

Для сравнения используется ==

burgersAmountLoop == true 

Первое задание, которая возвращает значение быть назначен, так что вы эффективно сделана бесконечная петля.

А если учесть, что переменная является bool в любом случае, делать какие-либо сравнения излишни

while (burgersAmountLoop) 
Смежные вопросы