Nội dung
Danh sách bài học
- 01~18 phút
if / else / else if — rẽ nhánh theo điều kiện
Hiểu if/else trong Java từ cú pháp đến cơ chế short-circuit, dangling-else, ternary operator, và vì sao nested if sâu là dấu hiệu cần refactor.
- 02~20 phút
switch — từ statement cổ điển đến expression hiện đại
Phân biệt switch statement (có fall-through, break) và switch expression (Java 14+, an toàn hơn, trả giá trị). Hiểu cơ chế tableswitch / lookupswitch ở bytecode và pattern matching Java 21.
- 03~16 phút
while và do-while — lặp khi chưa biết trước số lần
Phân biệt while (kiểm tra trước) và do-while (kiểm tra sau), cơ chế bytecode của loop, infinite loop có chủ đích, và vì sao do-while hiếm khi là lựa chọn đúng.
- 04~18 phút
Vòng lặp `for` — đếm có chủ đích
Cú pháp for 3 phần init/condition/update, scope của biến counter, duyệt mảng truyền thống, off-by-one bugs, và những tối ưu JIT bạn vô tình bật/tắt.
- 05~16 phút
`for-each` — duyệt collection không cần index
Enhanced for từ Java 5, cơ chế Iterable/Iterator, khi nào nó tương đương for cổ điển và khi nào bạn vẫn cần index, ConcurrentModificationException.
- 06~14 phút
`break` và `continue` — điều khiển luồng bên trong vòng lặp
break thoát loop sớm, continue skip sang vòng kế, labeled break/continue cho nested loop. Khi nào dùng, khi nào tránh và vì sao nhiều team cấm labeled.
- 07~22 phút
Mini-challenge: FizzBuzz với switch expression
Bài tập khép lại Module 3 — viết FizzBuzz kết hợp for, if/else, switch expression để rèn tư duy chọn cấu trúc điều khiển phù hợp.