break, continue, goto
break: thoát khỏi vòng lặp
Phần tiêu đề “break: thoát khỏi vòng lặp”break dừng vòng lặp ngay lập tức, bất kể điều kiện lặp còn đúng hay không:
#include <iostream>
int main() { for (int i = 0; i < 10; i++) { if (i == 5) { break; // Thoát vòng lặp ngay khi i == 5 } std::cout << i << " "; } // 0 1 2 3 4 return 0;}continue: bỏ qua vòng lặp hiện tại
Phần tiêu đề “continue: bỏ qua vòng lặp hiện tại”continue bỏ qua phần còn lại của lần lặp hiện tại và nhảy thẳng đến lần lặp tiếp theo:
#include <iostream>
int main() { for (int i = 0; i < 10; i++) { if (i % 2 == 0) { continue; // Bỏ qua số chẵn } std::cout << i << " "; } // 1 3 5 7 9 return 0;}goto - có trong C++ nhưng nên tránh
Phần tiêu đề “goto - có trong C++ nhưng nên tránh”C++ (kế thừa từ C) có goto để nhảy trực tiếp đến một nhãn (label) trong code, chủ yếu dùng để thoát nhiều tầng vòng lặp lồng nhau:
#include <iostream>
int main() { for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { if (i == 1 && j == 1) { goto end; // Nhảy thẳng ra khỏi CẢ HAI vòng lặp } std::cout << i << "," << j << " "; } }
end: std::cout << std::endl << "Da thoat" << std::endl;
return 0;}⚠️ goto khiến luồng chương trình khó theo dõi và dễ gây lỗi (code trở nên rối rắm - spaghetti code). Trong hầu hết trường hợp nên dùng biến cờ (flag), tách hàm riêng, hoặc ném ngoại lệ thay vì goto.
Tổng kết
Phần tiêu đề “Tổng kết”breakdừng hẳn vòng lặp;continuechỉ bỏ qua lần lặp hiện tại rồi tiếp tục- Một khối lệnh trong C++ có thể để trống
{}hoặc dùng dấu;cho câu lệnh rỗng gototồn tại trong C++ nhưng nên tránh dùng trừ trường hợp đặc biệt (thoát nhiều tầng vòng lặp lồng nhau)