Chúng ta đã thảo luận về một số vòng lặp cơ bản được sử dụng trong ngôn ngữ lập trình C, bao gồm for, while và do...while. Các vòng lặp này, như hầu hết các bạn đều đồng ý, về cơ bản giúp bạn khi các lệnh được thực thi lặp đi lặp lại theo một hoặc nhiều điều kiện. Vì vậy, bạn viết ít mã hơn trong khi làm cho nó dễ đọc hơn trong quá trình này.
Cũng giống như các vòng lặp này, có một số câu lệnh giúp bạn viết mã tốt hơn trong C. Một số câu lệnh đó là Switch, Break, Continue và Goto. Chúng ta hãy thảo luận từng cái một.
Đây là cấu trúc của switch:
Vì vậy, ở đây, 'biểu thức' là một giá trị được truyền làm đầu vào cho câu lệnh 'switch' và dựa trên trường hợp khớp với giá trị 'biểu thức', mã tương ứng sẽ được thực thi. Sau đây là một ví dụ thực tế trong đó lệnh switch làm cho mã ít phức tạp hơn và cải thiện khả năng đọc.
Vì vậy, ở đây, số báo danh do người dùng nhập vào đầu vào được đưa vào câu lệnh switch và mã tương ứng với trường hợp khớp sẽ được thực thi.
Lưu ý rằng câu lệnh 'break' ở cuối mỗi trường hợp đảm bảo câu lệnh switch được thoát sau khi trường hợp khớp được thực thi. Nếu không có câu lệnh 'break' nào, luồng thực thi sẽ nhập trường hợp tiếp theo.
Trường hợp 'default' ở đó để đảm bảo người dùng được thông báo nếu không có trường hợp nào khớp với giá trị trong switch. Có một trường hợp 'mặc định' không phải là bắt buộc, nhưng nó luôn hữu ích.
Ngoài ra, vì trường hợp mặc định thường là trường hợp cuối cùng trong câu lệnh switch, nên việc có 'break' ở cuối câu lệnh cũng không bắt buộc, nhưng được khuyến khích vì nó được coi là lập trình phòng thủ (phòng trường hợp có thêm nhiều trường hợp khác được thêm vào sau trường hợp 'mặc định' trong tương lai).
Cũng giống như các vòng lặp này, có một số câu lệnh giúp bạn viết mã tốt hơn trong C. Một số câu lệnh đó là Switch, Break, Continue và Goto. Chúng ta hãy thảo luận từng cái một.
Câu lệnh switch
Switch về cơ bản là một câu lệnh chấp nhận một giá trị, dựa trên đó nó thực thi một đoạn mã. Đây là một câu lệnh điều khiển vì nó thay đổi quyền điều khiển thực thi dựa trên giá trị đầu vào.Đây là cấu trúc của switch:
Mã:
...
...
...
switch (biểu thức)
{
case const_val_1: //một số mã
break;
case const_val_2: //một số mã
break;
case const_val_3: //một số mã
break;
default: //một số mã
break;
}
...
...
...
Mã:
#include
int main()
{
int roll;
printf("Nhập số báo danh trong phạm vi từ 1 đến 5: ");
scanf("%d", &roll);
switch(roll)
{
trường hợp 1: printf("tên học sinh là RON");
break;
trường hợp 2: printf("tên học sinh là ROGER");
break;
trường hợp 3: printf("tên học sinh là SAM");
break;
trường hợp 4: printf("tên học sinh là LUCIE");
break;
trường hợp 5: printf("tên học sinh là DORN");
break;
mặc định: printf("Số báo danh đã nhập không khớp với bất kỳ ứng viên nào");
break;
}
return 0;
}
Lưu ý rằng câu lệnh 'break' ở cuối mỗi trường hợp đảm bảo câu lệnh switch được thoát sau khi trường hợp khớp được thực thi. Nếu không có câu lệnh 'break' nào, luồng thực thi sẽ nhập trường hợp tiếp theo.
Trường hợp 'default' ở đó để đảm bảo người dùng được thông báo nếu không có trường hợp nào khớp với giá trị trong switch. Có một trường hợp 'mặc định' không phải là bắt buộc, nhưng nó luôn hữu ích.
Ngoài ra, vì trường hợp mặc định thường là trường hợp cuối cùng trong câu lệnh switch, nên việc có 'break' ở cuối câu lệnh cũng không bắt buộc, nhưng được khuyến khích vì nó được coi là lập trình phòng thủ (phòng trường hợp có thêm nhiều trường hợp khác được thêm vào sau trường hợp 'mặc định' trong tương lai).
Break và Continue
Lưu ý rằng ngoài 'switch', câu lệnh 'break' cũng có thể được sử dụng để thoát sớm khỏi các vòng lặp như for, while và do...while.
Mã:
...
...
for(i=0; i