So sánh switch case và if else

Lệnh switch case

  • Sử dụng lệnh switch case dễ nhìn, dễ maintain.
  • Chỉ cần so sánh biểu thức điều kiện 1 lần.
  • Khi biểu nhiều case thực hiện lệnh như nhau. Chúng ta có thể viết case liên tục và không sử dụng break.

Ví dụ 1: Nhập vào ngày trong tuần, in ra màn hình là ngày làm việc [ thứ 2 – 6] hay ngày nghỉ [thứ 7, chủ nhật]

Cách 1: Viết bằng lệnh switch case

#include #include enum day { MONDAY=2, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY }; void main[] { int dayOfWeek = MONDAY; switch [dayOfWeek] { case MONDAY: case TUESDAY: case WEDNESDAY: case THURSDAY: case FRIDAY: printf["\nWeekday"]; break; case SATURDAY: case SUNDAY: printf["\nWeekend"]; break; default: printf["\nInvalid"]; break; } getch[]; }

Cách 2: Viết bằng lệnh if else

#include #include enum day { MONDAY=2, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY }; void main[] { int dayOfWeek = MONDAY; if[dayOfWeek == MONDAY || dayOfWeek == TUESDAY || dayOfWeek == WEDNESDAY || dayOfWeek == THURSDAY || dayOfWeek == FRIDAY] printf["\nWeekday"]; else if [dayOfWeek == SATURDAY || dayOfWeek == SUNDAY] printf["\nWeekend"]; else printf["\nInvalid"]; getch[]; }

Qua đây, các bạn có thể thấy rằng sử dụng lệnh switch case dễ nhìn và có performance caohơn lệnh if else. Trong lệnh switch case, chỉ cần so sánh biểu thức dayOfWeek1 lần và goto tới case tương ứng. Trong lệnh if else, biểu thứcdayOfWeek được so sánh với với MONDAY, TUESDAY,…, FRIDAY trong lệnh if, nếu không thỏa mãn lại tiếp tục được so sánh với SATURDAY, SUNDAY trong lệnh else if.

NộI Dung:

  • Biểu đồ so sánh
  • Định nghĩa của if-else
  • Thí dụ
  • Định nghĩa công tắc
  • Phần kết luận

"If-else" và "switch" đều là câu lệnh lựa chọn. Các câu lệnh lựa chọn, chuyển luồng chương trình sang một khối câu lệnh cụ thể dựa trên điều kiện là "true" hay "false".

Sự khác biệt cơ bản giữa câu lệnh if-else và switch là câu lệnh if-else "lựa chọn việc thực thi các câu lệnh dựa trên đánh giá của biểu thức trong câu lệnh if".Các câu lệnh switch "chọn việc thực hiện câu lệnh thường theo một lệnh bàn phím".

Performance của switch-case so với if-else

Hoàng Tiến Đạt
18/09/20204 min read
So sánh performance giữa switch-case so với if-else và các kĩ thuật tối ưu của compiler đối với việc định nghĩa switch-case.

So sánh performance giữa switch-case so với if-else và các kĩ thuật tối ưu của compiler đối với việc định nghĩa switch-case.

Cấu trúc rẽ nhánh if, else là gì

Trong cuộc sống có nhiều lúc chúng ta phải ra quyết định khi có 2 hoặc nhiều hướng khác nhau. Lúc đấy chúng ta tường sử dụng câu NếuThì

VD:

Nếu bạn đọc Blog của mình thì bạn sẽ học được nhiều thứ.

Nếu crush thích mình thì mình sẽ tỏ tình với bạn ấy

Nếu hôm nay trời nắng thì mình sẽ đi chơi hoặc nếu không nắng thì mình ở nhà

Khi đó những thứ sau từ Nếu chính là điều kiện và sau từ Thì chính là lệnh thực thi.

Tương tự trong máy tính chúng ta có if [điều kiện] thì thực thi gì đó, hoặc nếu không else [điều kiện] thì thực thi một cái gì đó.

Cú pháp như sau:

if[bieu_thuc_boolean] { /* cac lenh se duoc thuc thi neu bieu thuc boolean la true */ } else { /* cac lenh se duoc thuc thi neu bieu thuc boolean la false */ }

Nếu biểu thức logic được ước lượng làtrue, thì khi đókhối ifsẽ được thực thi, nếu không thìkhối elsesẽ được thực thi.

Javascript: Chuyển đổi giữa lệnh if else và switch

Cả hai lệnh if else và switch case đều có chung một tính chất là rẻ nhánh chương trình, vậy câu hỏi đặt ra là làm thế nào để chuyển đổi một bài toán từ lệnh if else sang switch case và ngược lại.

Bài giải

-------------------- ######## --------------------

Khi chuyển đổi giữa lệnh if else sang lệnh switch thì bạn cần phải lưu ý một điều như sau: Đối với lệnh switch nó sử dụng toán tửso sánh bằng, còn đối vớ lệnh if thì bạn có thể sử dụng các toán tử khác như toán tử so sánh lớn hơn, bé hơn, ... Vì vậy tùy vào mỗi bài toán mà bạn có thể chuyển đổi được hoặc không được.

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Mình sẽ lấy ví dụ trong bài học này luôn đó là bài kiểm tra số chẵn hay lẻ, mình sẽ chuyển bài đó sang lệnh if else.

Sử dụng lệnh switch RUN
var number = parseInt[prompt["Nhập số cần kiểm tra"]]; var mod = [number % 2]; switch [mod] { case 0 : { document.write[number + " là số chẵn"]; break; } case 1: { document.write[number + " là số lẽ"]; break; } default : { document.write["Ký tự bạn nhập không phải số"]; } }
Sử dụng lệnh if else RUN
var number = parseInt[prompt["Nhập số cần kiểm tra"]]; var mod = [number % 2]; if [mod == 0]{ document.write[number + " là số chẵn"]; } else if [mod == 1]{ document.write[number + " là số lẽ"]; } else{ document.write["Ký tự bạn nhập không phải số"]; }

Một ví dụ ta không nên chuyển sang switch case.

Code
// Ứng dụng xếp hạng điểm thi var point = parseInt[prompt['Nhập số điểm thi bạn muốn kiểm tra', '0']]; var message = ''; if [point < 5 && point >= 0]{ message = 'Bạn đã bị rớt môn'; } else if [point >= 5 && point 6 && point < 8]{ message = "Bạn là học sinh khá"; } else if [point >= 8 && point 0] { NSLog[@"Số đã cho có giá trị lớn hơn 0"]; } elseif [number == 0] { NSLog[@"Số đã cho có giá trị bằng 0"]; } else { NSLog[@"Số đã cho có giá trị lớn hơn 0"]; }

Video liên quan

Chủ Đề