freeCodeCamp/guide/english/certifications/javascript-algorithms-and-d.../basic-javascript/replacing-if-else-chains-wi.../index.md

2.5 KiB
Raw Blame History

Replacing If Else Chains with Switch

Heres the setup:

function chainToSwitch(val) {
  var answer = "";
  // Only change code below this line
  switch(val) {
    case "bob":
        answer = "Marley";
        break;
    case 42:
        answer = "The Answer";
        break;
    case 1:
        answer = "There is no #1";
        break;
    case 99:
        answer = "Missed me by this much!";
        break;
    case 7:
        answer = "Ate Nine";
        break;
  }
  // Only change code above this line  
  return answer;  
}
// Change this value to test
chainToSwitch(7);

We need to change the chained if/else if statements into a switch statement.

Heres a solution:

Now, we need to comment (// - select all lines and ctrl+/) all chained if/else if statements:

//   if (val === "bob") {
//     answer = "Marley";
//   } else if (val === 42) {
//     answer = "The Answer";
//   } else if (val === 1) {
//     answer = "There is no #1";
//   } else if (val === 99) {
//     answer = "Missed me by this much!";
//   } else if (val === 7) {
//     answer = "Ate Nine";
//   }

Next, we need to create simple switch statement:

switch(val) {
} 

and add in this switch statement case - for all if/else if statement (just copy it from our commented code above):

switch(val) {
  case "bob":
      answer = "Marley";
      break;
  case 42:
      answer = "The Answer";
      break;
  case 1:
      answer = "There is no #1";
      break;
  case 99:
      answer = "Missed me by this much!";
      break;
  case 7:
      answer = "Ate Nine";
      break;
}

Dont forget to use break in each case! Now, we can delete commented code with if/else if statement above.

Heres a full solution:

function chainToSwitch(val) {
 var answer = "";
 // Only change code below this line
 switch(val) {
   case "bob":
       answer = "Marley";
       break;
   case 42:
       answer = "The Answer";
       break;
   case 1:
       answer = "There is no #1";
       break;
   case 99:
       answer = "Missed me by this much!";
       break;
   case 7:
       answer = "Ate Nine";
       break;
 } 
 // Only change code above this line  
 return answer;  
}
// Change this value to test
chainToSwitch(7);