C Điều kiện

Giới thiệu về C Điều kiện: if / else và switch

Bất kỳ ngôn ngữ lập trình nào cũng cung cấp cho người lập trình khả năng thực hiện các lựa chọn.

Chúng tôi muốn làm X trong một số trường hợp, và Y trong các trường hợp khác.

Chúng tôi muốn kiểm tra dữ liệu và thực hiện các lựa chọn dựa trên trạng thái của dữ liệu đó.

C cung cấp cho chúng tôi 2 cách để làm như vậy.

Đầu tiên làiftuyên bố, với nóelsengười trợ giúp, và thứ hai làswitchtuyên bố.

if

Trong mộtif, bạn có thể kiểm tra một điều kiện là đúng, và sau đó thực thi khối được cung cấp trong dấu ngoặc nhọn:

int a = 1;

if (a == 1) { /* do something */ }

Bạn có thể thêm mộtelsekhối để thực thi một khối khác nếu điều kiện ban đầu là sai;

int a = 1;

if (a == 2) { /* do something / } else { / do something else */ }

Hãy coi chừng một nguồn lỗi phổ biến - luôn sử dụng toán tử so sánh==trong so sánh chứ không phải toán tử gán=, nếu khôngifkiểm tra có điều kiện sẽ luôn đúng, trừ khi đối số là0, ví dụ nếu bạn làm:

int a = 0;

if (a = 0) { /* never invoked */ }

Lý do tại sao điều này xảy ra? Bởi vì kiểm tra có điều kiện sẽ tìm kiếm một kết quả boolean (kết quả của một phép so sánh) và0số luôn tương đương với một giá trị sai. Mọi thứ khác đều đúng, kể cả số âm.

Bạn có thể có nhiềuelsecác khối bằng cách xếp chồng lên nhau nhiềuifcác câu lệnh:

int a = 1;

if (a == 2) { /* do something / } else if (a == 1) { / do something else / } else { / do something else again */ }

switch

Nếu bạn cần thực hiện quá nhiều khối if / else / if để thực hiện kiểm tra, có lẽ vì bạn cần kiểm tra giá trị chính xác của một biến, khi đóswitchcó thể rất hữu ích cho bạn.

Bạn có thể cung cấp một biến dưới dạng điều kiện và một loạtcaseđiểm đầu vào cho mỗi giá trị bạn mong đợi:

int a = 1;

switch (a) { case 0: /* do something / break; case 1: / do something else / break; case 2: / do something else */ break; }

Chúng tôi cần mộtbreaktừ khóa ở cuối mỗi trường hợp, để tránh trường hợp tiếp theo được thực hiện khi trường hợp trước đó kết thúc. Hiệu ứng "thác nước" này có thể hữu ích theo một số cách sáng tạo.

Bạn có thể thêm trường hợp "nhận tất cả" ở cuối, được gắn nhãndefault:

int a = 1;

switch (a) { case 0: /* do something / break; case 1: / do something else / break; case 2: / do something else / break; default: / handle all the other cases */ break; }

Tải xuống miễn phí của tôiSổ tay C


Các hướng dẫn khác về tiếng clang: