Tự học C++: Cấu trúc lựa chọn: switch

Tự học C++: Cấu trúc lựa chọn: switch

Cú pháp của lệnh switch hơi đặc biệt một chút. Mục đích của nó là kiểm tra một vài giá trị hằng cho một biểu thức, tương tự với những gì chúng ta làm ở đầu bài này khi liên kết một vài lệnh if và else if với nhau. Dạng thức của nó như sau:

switch (expression) {
case constant1:
block of instructions 1
break;
case constant2:
block of instructions 2
break;
.
.
.
default:
default block of instructions
}

Nó hoạt động theo cách sau: switch tính biểu thức và kiểm tra xem nó có bằng constant1 hay không, nếu đúng thì nó thực hiện block of instructions 1 cho đến khi tìm thấy từ khoá break, sau đó nhảy đến phần cuối của cấu trúc lựa chọn switch. Còn nếu không, switch sẽ kiểm tra xem biểu thức có bằng constant2 hay không. Nếu đúng nó sẽ thực hiện block of instructions 2 cho đến khi tìm thấy từ khoá break. Cuối cùng, nếu giá trị biểu thức không bằng bất kỳ hằng nào được chỉ định ở trên (bạn có thể chỉ định bao nhiêu câu lệnh case tuỳ thích), chương trình sẽ thực hiện các lệnh trong phần default: Nếu nó tồn tại vì phần này không bắt buộc phải có.

Hai đoạn mã sau là tương đương:

Ví dụ switch If-else tương đương
switch (x) {

case 1:

cout << “x is 1″;

break;

case 2:

cout << “x is 2″;

break;

default:

cout << “value of x unknown”;

}

if (x == 1) {

cout << “x is 1″;

}else if (x == 2) {

cout << “x is 2″;

}else {

cout << “value of x unknown”;

}

Chú ý sự tồn tại của lệnh break ở cuối mỗi khối lệnh. Điều này là cần thiết vì nếu không thì sau khi thực hiện block of instructions 1 chương trình sẽ không nhảy đến cuối của lệnh switch mà sẽ thực hiện các khối lệnh tiếp theo cho đến khi nó tìm thấy lệnh break đầu tiên. Điều này khiến cho việc đặt cặp ngoặc nhọn { } trong mỗi trường hợp là không cần thiết và có thể được dùng khi bạn muốn thực hiện một khối lệnh cho nhiều trường hợp khác nhau, ví dụ:

switch (x) {

case 1:

case 2:

case 3:

cout << “x is 1, 2 or 3″;

break;

default:

cout << “x is not 1, 2 nor 3″;

}

Chú ý rằng lệnh switch chỉ có thể được dùng để so sánh một biểu thức với các hằng. Vì vậy chúng ta không thể đặt các biến (case (n*2):) hay các khoảng (case (1..3):) vì chúng không phải là các hằng hợp lệ.

Nếu bạn cần kiểm tra các khoảng hay nhiều giá trị không phải là hằng số hãy kết hợp các lệnh if và else if.

(Theo OurViet Network)

 

Bạn thấy bài viết này như thế nào?: 
Average: 9 (1 vote)
Ảnh của Binh Tran Thanh

Drupal Consultant

Started my career as a drupal8 developer in EM Solutions . I love learning Web technologies like HTML, CSS, PHP, Jquery Ajax and Drupal backend . Currently working as a drupal backend developer.

Bình luận (0)

 

Add Comment

Filtered HTML

  • Các địa chỉ web và email sẽ tự động được chuyển sang dạng liên kết.
  • Các thẻ HTML được chấp nhận: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Tự động ngắt dòng và đoạn văn.

Plain text

  • No HTML tags allowed.
  • Các địa chỉ web và email sẽ tự động được chuyển sang dạng liên kết.
  • Tự động ngắt dòng và đoạn văn.
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.

Advertisement

 

jobsora

Dich vu khu trung tphcm

Dich vu diet chuot tphcm

Dich vu diet con trung

Quảng Cáo Bài Viết

 
Sử dụng hook_menu để custom menus in code

Sử dụng hook_menu để custom menus in code

Every time I use , I get an awful headache. Why? Drupal has overloaded this hook to handle both the menu system and the routing system, which seems like an architectural mistake to me

Chương trình mã số điện tử Dell Pass mới (e-Dell Pass)

Chương trình mã số điện tử Dell Pass mới (e-Dell Pass)

Nhằm phục vụ khách hàng tốt hơn trong quá trình bảo hành và dịch vụ hậu mãi, Dell Việt Nam sẽ tiến hành thay thế hoàn toàn thẻ Dell Pass nhựa truyền thống bằng hình thức MÃ SỐ ĐIỆN TỬ DELLPASS (e-Dell Pass).

Google

Google Classifier for parked domain là gì?

Vào khoảng ngày 20/04/2012, hàng loạt các website đang đứng ở thứ hạng cao bất ngờ bị rớt hạng.

Công ty diệt chuột T&C

 

Diet con trung