Switch statement problems

Hey guys I'm new to c++. Would love some help with this program :)
I'm having trouble with the switch statements as my compiler gives me the following errors: case '2' not within a switch statement, case '3' not within a switch statement, case '4' not within a switch statement, case '5' not within a switch statement.

I'm wanting to know why my compiler gives me these errors and where I went wrong.


Here's the full program:

#include <iostream>
using namespace std;

const float maxPerUnit = 20000.00;
//minPerChild includes a standard gift consisting of a bath towel and a facecloth
const float minPerChild = 100.00;
const float maxPerChild = 180.00;
//depending on the amount, the child may also get one or more of the following;
const float TOOTHBRUSH = 29.95;
const float HIGHLIGHTERS = 25.95;
const float CRAYONS = 17.95;
const float NOTEBOOK = 12.95;
const float PEN = 9.99;

float calcAllowedPerChild(int nrChildrenP)
{
float amtGiftP = 20000.00 / nrChildrenP;
return amtGiftP;
}

float calcActualAmount(float amountP, int nrChildrenP)
{
float leftToSpend;
if (calcAllowedPerChild(nrChildrenP) > 180)
amountP = 180;
else if (calcAllowedPerChild(nrChildrenP) < 180)
leftToSpend = calcAllowedPerChild(nrChildrenP) - 100;
do
{
for (int i = 1; i <= 5; i++)
{
switch (i)
case 1: leftToSpend -= TOOTHBRUSH;
break;
case 2: leftToSpend -= HIGHLIGHTERS;
break;
case 3: leftToSpend -= CRAYONS;
break;
case 4: leftToSpend -= NOTEBOOK;
break;
case 5: leftToSpend -= PEN;
break;

amountP = calcAllowedPerChild(nrChildrenP) - leftToSpend;

while (leftToSpend == 0);
}
}
return amountP;
}

int main()
{
float amtGift; // Allowed amount per child
float amtSpentPerChild = 0.00; // actual amount spent per child
float totalSpent = 0.00; // total spent for 1 orphanage
float totalAll = 0.00; // total spent for all 4 orphanages
int nrChildren;

cout << "Enter the amount of children: " << endl;
cin >> nrChildren;
amtGift = calcAllowedPerChild(nrChildren);
cout.setf(ios::fixed);
cout.precision(2);
cout << endl << " Allowable amount per child : R" << amtGift;
cout << endl << endl;
amtSpentPerChild = calcActualAmount(amtGift, nrChildren);
cout << endl << " Actual amount spent per child : R" ;
cout << amtSpentPerChild << endl << endl;

system("pause");
return 0;
}
You need brackets around you switch statements:

1
2
3
4
5
switch (variable)
{
    case 1:
    ...
}
Last edited on
Topic archived. No new replies allowed.