-1

how can I convert this if statement to switch statement by considering that I am using two variables here and I tried to solve it but not working

int child;
char gender;
int temp;
child=console.nextInt();
gender=console.next().charat(0);
if(gender=='m' && children>=4)
  temp =1;
else if(gender=='m' && children<4)
  temp =2;
else if(gender=='f' && children<4)
  temp =3;
else
  temp=4;
}

this is my code

   int children;
    double temp;
    char gender;
    children=console.nextInt();
    switch(children , gender )
    {
      case < 4, 'm':

        temp=1;
      break;

      default : salary=600;
    }
Cœur
  • 37,241
  • 25
  • 195
  • 267
Saleh Refaai
  • 689
  • 3
  • 14
  • 25

2 Answers2

2

You should start by having a look at The switch Statement

The switch statement is basically evaluating a single condition per case. You can use drop through conditions, but that's a lot of additional code.

For example, something like...

switch (gender) {
    case 'm':
        temp = 0;
        if (children >= 4) {
            temp += 1;
        } else {
            temp += 2;
        }
        break;
    case 'f':
        temp = 2;
        if (children >= 4) {
            temp += 2;
        } else {
            temp += 1;
        }
        break;
}

would generate the same results as your if statements

If you preferred to use pure switch statements, you could do something like...

switch (gender) {
    case 'm':
        temp = 0;
        switch (children) {
            case 0:
            case 1:
            case 2:
            case 3:
                temp += 2;
                break;  
            default:
                temp += 1;
        }
        break;
    case 'f':
        temp = 2;
        switch (children) {
            case 0:
            case 1:
            case 2:
            case 3:
                temp += 1;
                break;
            default:
                temp += 2;
        }
        break;
}

Java's switch statement doesn't support ranges :(

MadProgrammer
  • 343,457
  • 22
  • 230
  • 366
1

switch (gender) {

case 'm':
    temp = (children >= 4)? 1:2;
    break;
case 'f':
    temp = (children >= 4)? 4:3;
    break;
default:
    temp = 4;
    break;  

}

cookies
  • 323
  • 1
  • 9