Trang chủ > Javascript cơ bản

Lý thuyết

Mục tiêu

Sinh viên hiểu về lệnh switch...case và cách sử dụng nó trong bài tập thực tế.

Tổng quan

Bạn có thể dùng nhiều lệnh if...else…if , như đã cung cấp ở phần trước, để thực hiện 1 nhánh với nhiều lối đi. Tuy nhiên điều đó không phải là giải pháp tốt nhất, đặc biệt là khi tất cả các nhánh phụ thuộc vào giá trị của một biến duy nhất.

if(x == 5){
  //do something
} else if (x == 7) {
  //do something else
} else if (x == 12) {
  //do something different
} else if (x = 50) {
  //do something yet more different
} else {
  //do something completely different
}

Tuy nhiên ở đây mỗi trường hợp xác định bằng một lệnh điều kiện, bạn có thể sử dụng lệnh switch...case, lệnh mà dễ đọc và hiểu hơn.

switch...case 

Ví dụ lệnh trước có thể được rõ ràng hơn với lệnh switch như sau đây:

switch(x){
  case 5:
    //do something
    break;
  case 7:
    //do something else
    break;
  case 12:
    //do something different
    break;
  case 50:
    //do something yet more different
    break;
  default:
    //do something completely different
}

Kiểu của biểu thức là trả về giá trị của biến x có thể một trong các kiểu charbyteshortintCharacterByteShortIntegerString hoặc enum. Hãy chú ý từ khóa break, nó buộc lệnh switch...case dừng lại. Nếu không có nó, việc này chỉ được chấp nhận khi case đó không có bất kỳ một lệnh nào, ngược lại, lệnh case đó sẽ bị báo lỗi cú pháp. Chúng ta sẽ nói về lệnh break trong một khóa phía sau về các lệnh rẽ nhánh.

Chúng ta hãy nhìn vào phương thức cho thấy lợi ích của lệnh switch:

switch(n + 1){
    case 1:
      console.log("case 1: " + n);
      break;
    case 2:
      console.log("case 2: " + n);
      break;
    default:
      console.log("default: " + n);
      break;
}

Và như mệnh đề else trong lệnh if, mệnh đề default không bắt buộc trong lệnh switch nếu nó không cần thiết cho logic chương trình: 

switch(n + 1){
  case 1:
    console.log("case 1: " + n);
    break;
  case 2:
    console.log("case 2: " + n);
}

Switch với nhiều trường hơp và có cũng cách sử lý

Có nhiều trường hợp một phạm vi không phải là giải pháp phù hợp, nhưng bạn cần áp dụng cùng một thực thi cho nhiều giá trị. Đây là nơi mà câu lệnh chuyển đổi có thể rất tiện dụng.

Thay vì tạo một câu lệnh if lộn xộn với nhiều đánh giá biểu thức, bạn có thể 'xếp chồng' các trường hợp.

Đây là một biến thể, tất cả đều rất đơn giản, trong ngày của ví dụ trong tuần. Ở đây tôi trình bày cách bạn có thể sử dụng câu lệnh chuyển đổi trong ứng dụng lịch.

Vi dụ:

switch (expr) {
  case 'Oranges':
    console.log('Oranges are $0.59 a pound.');
    break;
  case 'Apples':
  case 'Papayas':
    console.log('Apples and Papayas are $2.79 a pound.');
    break;
  default:
    console.log('Sorry, we are out of ' + expr + '.');
}


Bài tập 1

Cho 1 số từ 0 đến 6. Viết chương trình để in ra thứ trong tuần

number: 0 => Thứ trong tuần: Sunday

number: 1 => Thứ trong tuần: Monday

number: 2 => Thứ trong tuần: Tuesday

number: 3 => Thứ trong tuần: Wednesday

number: 4 => Thứ trong tuần: Thursday

number: 5 => Thứ trong tuần: Friday

number: 6 => Thứ trong tuần: Saturday

  • Ví dụ:
    • Cho number = 0; in ra: Sunday
    • Cho number = 4; in ra: Thursday
    • Cho number = 6; in ra: Saturday
  • Đầu vào: 1 số từ 0 đến 6
  • Đầu ra: In ra thứ trong tuần

Bài tập 2

Cho điểm 5 môn Physics, Chemistry, Biology, Mathematics and Computer. Tính toán điểm trung bình (%) và in Grade (cấp) theo bảng sau:

Điểm trung bình (%) >= 90% : Grade A

Điểm trung bình (%) >= 80% : Grade B

Điểm trung bình (%) >= 70% : Grade C

Điểm trung bình (%) >= 60% : Grade D

Điểm trung bình (%) >= 40% : Grade E

Điểm trung bình (%) < 40% : Grade F

  • Ví dụphysics = 10, chemistry = 9.5, biology = 9.2, mathematics = 10, computer = 9. Thì điểm trung bình (%) là 95.4. => Kết quả: Grade A
  • Đầu vào: physics, chemistry, biology, mathematics, computer
  • Đầu ra: grade 

 


Bài tập 3

Viết chương trình javascript để sắp xếp 4 số (a, b, c, d). Và in ra kết quả. 

  • Ví dụ:
    • Cho a = 3; b = 2; c= 9; d= -1; In ra "9,3,2,-1";
    • Cho a = 3; b = 3; c= 8; d= -5; In ra "8,3,3,-5";
  • Đầu vào: a, b, c, d
  • Đầu ra: sắp xếp 4 số (a, b, c, d). Và in ra kết quả.