1. Khái niệm điều khiển luồng chương trình (Control Flow)
Trong mọi ngôn ngữ lập trình, luồng thực thi mặc định của chương trình là từ trên xuống dưới, từng dòng lệnh một. Tuy nhiên, để xây dựng một chương trình có tính logic và phản hồi linh hoạt theo dữ liệu đầu vào, lập trình viên cần sử dụng các cấu trúc điều khiển luồng như:
- Câu lệnh rẽ nhánh (
if
,if–else
,switch
) - Câu lệnh lặp (
for
,while
,do–while
) - Câu lệnh điều hướng luồng lặp (
break
,continue
)
Những cấu trúc này cho phép chương trình đưa ra quyết định và lặp lại hành động khi cần thiết, từ đó thể hiện được tư duy logic và thuật toán.

2. Câu lệnh điều kiện trong Java
2.1. Câu lệnh if
Câu lệnh if
kiểm tra một biểu thức điều kiện. Nếu điều kiện đúng (true), khối lệnh bên trong sẽ được thực hiện.

Cú pháp chuẩn:
if (điều_kiện) {
// khối lệnh thực thi nếu điều kiện đúng
}
Ví dụ:
int diem = 9;
if (diem >= 8) {
System.out.println("Học sinh giỏi");
}
2.2. Câu lệnh if – else
Thêm khối else
để xử lý tình huống khi điều kiện sai.

Ví dụ:
int tuoi = 15;
if (tuoi >= 18) {
System.out.println("Đủ tuổi trưởng thành");
} else {
System.out.println("Chưa đủ tuổi trưởng thành");
}
2.3. Câu lệnh if – else if – else
Sử dụng khi có nhiều nhánh điều kiện cần kiểm tra tuần tự.
Ví dụ:
int diem = 6;
if (diem >= 8.5) {
System.out.println("Giỏi");
} else if (diem >= 7) {
System.out.println("Khá");
} else if (diem >= 5) {
System.out.println("Trung bình");
} else {
System.out.println("Yếu");
}
2.4. Toán tử ba ngôi (ternary operator)
Cách viết ngắn gọn thay thế cho if – else
đơn giản.
Cú pháp:
biến = (điều_kiện) ? giá_trị_nếu_đúng : giá_trị_nếu_sai;
Ví dụ:
int a = 5, b = 8;
int max = (a > b) ? a : b;
3. Câu lệnh switch
Cấu trúc rẽ nhánh hiệu quả khi cần so sánh một giá trị với nhiều trường hợp rời rạc.

Chỉ áp dụng với các kiểu:
byte
,short
,int
,char
String
(từ Java 7 trở đi)enum
(kiểu liệt kê)
Cú pháp chuẩn:
switch (biểu_thức) {
case giá_trị_1:
// khối lệnh
break;
case giá_trị_2:
// khối lệnh
break;
default:
// khối lệnh mặc định nếu không có case nào khớp
}
Ví dụ:
int thang = 3;
switch (thang) {
case 1:
System.out.println("Tháng Một");
break;
case 2:
System.out.println("Tháng Hai");
break;
case 3:
System.out.println("Tháng Ba");
break;
default:
System.out.println("Không hợp lệ");
}
4. Câu lệnh lặp
4.1. Vòng lặp for
Sử dụng khi biết trước số lần lặp.
Cú pháp:
for (khởi_tạo; điều_kiện; cập_nhật) {
// khối lệnh
}
Ví dụ:
for (int i = 1; i <= 5; i++) {
System.out.println("Lần lặp thứ " + i);
}
4.2. Vòng lặp while
Dùng khi chưa biết trước số lần lặp, nhưng cần kiểm tra điều kiện trước mỗi lần lặp.
Cú pháp:
while (điều_kiện) {
// khối lệnh
}
Ví dụ:
int i = 1;
while (i <= 5) {
System.out.println("Lần thứ " + i);
i++;
}
4.3. Vòng lặp do – while
Tương tự while
, nhưng luôn thực hiện ít nhất một lần trước khi kiểm tra điều kiện.
Cú pháp:
do {
// khối lệnh
} while (điều_kiện);
Ví dụ:
int i = 1;
do {
System.out.println("Giá trị: " + i);
i++;
} while (i <= 5);
5. Câu lệnh break và continue
break
Dừng vòng lặp hoặc khối switch
ngay lập tức.
Ví dụ:
for (int i = 1; i <= 10; i++) {
if (i == 4) break;
System.out.println(i);
}
continue
Bỏ qua phần còn lại của lần lặp hiện tại và chuyển sang lần tiếp theo.
Ví dụ:
for (int i = 1; i <= 5; i++) {
if (i == 3) continue;
System.out.println(i);
}
6. Bài tập thực hành
- Nhập một số nguyên từ bàn phím và kiểm tra xem nó là số dương, âm hay bằng 0.
- Viết chương trình nhập điểm, xếp loại theo thang điểm (Giỏi, Khá, Trung bình, Yếu).
- In ra các số từ 1 đến 100 chia hết cho 3 nhưng không chia hết cho 5.
- Tính tổng các số chẵn từ 1 đến n.
- Viết chương trình in bảng cửu chương từ 2 đến 9, mỗi bảng trên một dòng.
7. Câu hỏi ôn tập
- So sánh
if – else
vàswitch
: trường hợp nào nên dùng cái nào? - Sự khác nhau giữa
while
vàdo – while
? - Tại sao nên dùng
break
vàcontinue
một cách thận trọng? - Vòng lặp nào phù hợp khi chưa biết trước số lần lặp?
- Có thể dùng
switch
cho điều kiện dạng phạm vi (range) không?
Sign up