freeCodeCamp/curriculum/challenges/english/02-javascript-algorithms-an.../basic-javascript/multiple-identical-options-...

3.6 KiB

id title challengeType videoUrl
56533eb9ac21ba0edf2244df Multiple Identical Options in Switch Statements 1 https://scrimba.com/c/cdBKWCV

Description

If the break statement is omitted from a switch statement's case, the following case statement(s) are executed until a break is encountered. If you have multiple inputs with the same output, you can represent them in a switch statement like this:
switch(val) {
  case 1:
  case 2:
  case 3:
    result = "1, 2, or 3";
    break;
  case 4:
    result = "4 alone";
}

Cases for 1, 2, and 3 will all produce the same result.

Instructions

Write a switch statement to set answer for the following ranges:
1-3 - "Low"
4-6 - "Mid"
7-9 - "High" Note
You will need to have a case statement for each number in the range.

Tests

tests:
  - text: <code>sequentialSizes(1)</code> should return "Low"
    testString: assert(sequentialSizes(1) === "Low", '<code>sequentialSizes(1)</code> should return "Low"');
  - text: <code>sequentialSizes(2)</code> should return "Low"
    testString: assert(sequentialSizes(2) === "Low", '<code>sequentialSizes(2)</code> should return "Low"');
  - text: <code>sequentialSizes(3)</code> should return "Low"
    testString: assert(sequentialSizes(3) === "Low", '<code>sequentialSizes(3)</code> should return "Low"');
  - text: <code>sequentialSizes(4)</code> should return "Mid"
    testString: assert(sequentialSizes(4) === "Mid", '<code>sequentialSizes(4)</code> should return "Mid"');
  - text: <code>sequentialSizes(5)</code> should return "Mid"
    testString: assert(sequentialSizes(5) === "Mid", '<code>sequentialSizes(5)</code> should return "Mid"');
  - text: <code>sequentialSizes(6)</code> should return "Mid"
    testString: assert(sequentialSizes(6) === "Mid", '<code>sequentialSizes(6)</code> should return "Mid"');
  - text: <code>sequentialSizes(7)</code> should return "High"
    testString: assert(sequentialSizes(7) === "High", '<code>sequentialSizes(7)</code> should return "High"');
  - text: <code>sequentialSizes(8)</code> should return "High"
    testString: assert(sequentialSizes(8) === "High", '<code>sequentialSizes(8)</code> should return "High"');
  - text: <code>sequentialSizes(9)</code> should return "High"
    testString: assert(sequentialSizes(9) === "High", '<code>sequentialSizes(9)</code> should return "High"');
  - text: You should not use any <code>if</code> or <code>else</code> statements
    testString: assert(!/else/g.test(code) || !/if/g.test(code), 'You should not use any <code>if</code> or <code>else</code> statements');
  - text: You should have nine <code>case</code> statements
    testString: assert(code.match(/case/g).length === 9, 'You should have nine <code>case</code> statements');

Challenge Seed

function sequentialSizes(val) {
  var answer = "";
  // Only change code below this line



  // Only change code above this line
  return answer;
}

// Change this value to test
sequentialSizes(1);

Solution

function sequentialSizes(val) {
  var answer = "";

  switch(val) {
    case 1:
    case 2:
    case 3:
      answer = "Low";
      break;
    case 4:
    case 5:
    case 6:
      answer = "Mid";
      break;
    case 7:
    case 8:
    case 9:
      answer = "High";
  }

  return answer;
}