Как получить значение из оператора if c ++? - PullRequest
0 голосов
/ 20 февраля 2012

Как я могу получить значение из оператора if?Я имею в виду, что число больше 151, как в первом операторе if.Как я могу получить значение r1 из этого блока, чтобы я мог добавить все в конце, включая это конкретное значение из оператора «что если» выбран.

int main (int argc, const char * argv[])
{
    const double beefMeal = 12.95;
    const double chickenMeal = 10.95;
    const double veganMeal = 8.95;
    int beef, chicken, vegan;
    const int room1 = 250;
    const int room2 = 200;
    const int room3 = 100;
    const int room4 = 50;
    int numParty;
    double r1= 0, r2= 0, r3= 0, r4= 0, b1, c1, v1;
    double grat, total;

    cout <<"Enter number of beef meals: ";
    cin>>beef;
    cout<<endl;
    cout <<"Enter number of chicken meals: ";
    cin>>chicken;
    cout<<endl;
    cout <<"Enter number of vegan meals: ";
    cin >> vegan;
    cout<<""<<endl;

    cout<<"A Caterers Program"<<endl;
    cout<<""<<endl;

    cout.setf (ios::fixed | ios::showpoint);
    cout.precision(2);
    cout<<"Number in party: ";
    cin>> numParty;
    if(numParty>151)
    {
        r1 = (room1 * 6.5)/100;
        cout<<"Room cost:                                           $"<<room1<<endl;
        cout<<"Room tax:                                            $"<<r1<<endl;
    }
    else
    {
        if (numParty <= 150 && numParty >= 100) 
        {
            r2 = (room2 * 6.5)/100;
            cout<<"Room cost:            $"<<room2<<endl;
            cout<<"Room tax:             $"<<r2<<endl;
        }
        else
        {
            if (numParty <= 99 && numParty >= 31)
            {
                r3 = (room3 * 6.5)/100;
                cout<<"Room cost:            $"<<room3<<endl;
                cout<<"Room tax:             $"<<r3<<endl;
            }
            else
            {
                if (numParty <= 30)
                {
                    r4 = (room4 * 6.5)/100;
                    cout<<"Room cost:            $"<<room4<<endl;
                    cout<<"Room tax:             $"<<r4<<endl;
                }
            }
        }
    }

    cout<<"Number of beef dinners:    "<<beef<<endl;
    b1 = beef * beefMeal; 
    cout<<"Cost of beef dinners:               $"<<b1<<endl;
    cout<<"Number of chicken dinners: "<<chicken<<endl;
    c1 = chicken * chickenMeal; 
    cout<<"Cost of chicken dinners:            $"<<c1<<endl;
    cout<<"Number of vegan dinners:   "<<vegan<<endl;
    v1 = vegan * veganMeal; 
    cout<<"Cost of vegan dinners:              $"<<v1<<endl;
    grat = (b1 + c1 + v1) * 0.18;
    cout<<"Food Gratuity:                      $"<<grat<<endl;

    cout<<"________________________________________________"<<endl;
    total = grat + v1 + c1 + b1 + r1 + r2 + r3 + r4;
    cout<<"Total: $"<< total;
}

Ответы [ 2 ]

2 голосов
/ 20 февраля 2012

Поскольку вы объявили переменные r1,r2... в самой внешней области видимости, они действительны и доступны в любой области видимости во внешней области.

0 голосов
/ 20 февраля 2012

Ваш код является телом некоторой функции, и все эти двойные переменные являются локальными переменными для этой функции, что означает, что они видны в пределах своей области видимости.В связи с этим вам не нужно делать ничего особенного, просто убедитесь, что они правильно инициализированы и / или им присвоены значения.

void foo()
{
   double r1 = 0;

   if(some_condition)
   {
       // use r1...
   }
   else
   {
      // use r1...
   }

   // use r1...        
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...