Chào các bạn đã đến với chủ đề tiếp theo của mình. Hôm nay, mình sẽ tiếp tục giới thiệu về cấu trúc rẻ nhánh trong Java. Ở bài này, mình sẽ đi qua những nội dung như sau:
- Cấu trúc rẽ nhánh là gì? Phân loại
- Cách sử dụng cấu trúc rẽ nhánh
- Lời khuyên
Nội dung
1. Cấu trúc rẽ nhánh là gì? Phân loại
Trong lập trình, có những lúc ta cần phân chia các trường hợp và mỗi hoàn cảnh sẽ thực hiện những đoạn chương trình khác nhau. Như vậy dựa vào điều kiện ta sẽ rẽ nhánh cho chương trình chạy câu lệnh tương ứng.
Phân loại: Có 2 loại cấu trúc rẽ nhánh là dạng thiếu và dạng đủ
Ví dụ:
- Dạng thiếu: Nếu biến age trên 18 thì ta sẽ in ra ‘Bạn đã đủ tuổi để đăng kí’.
- Dạng đủ: Nếu biến age trên 18 thì ta sẽ in ra ’Bạn đã đủ tuổi để đăng kí’, ngược lại thì in ra là ‘Bạn chưa đủ tuổi để đăng kí’
2. Cách sử dụng cấu trúc rẽ nhánh
2.1. Cấu trúc rẽ nhánh dạng thiếu
Cú pháp:
if (<Biểu thức điều kiện>) <Câu lệnh thực hiện>
Ý nghĩa:
- Nếu <Biểu thức điều kiện> trả về true thì sẽ thực hiện <Câu lệnh thực hiện>.
Ví dụ:
public class CauTrucReNhanhDangThieu {
public static void main(String []args){
String s = "Java";
if (s == "Java")
System.out.print("This is java for Tester");
}
}
Sau khi run xong, kết quả sẽ in ra như sau:
2.2. Cấu trúc rẽ nhánh dạng đủ
Dạng đủ sẽ chia ra 2 loại: Gồm if..else.. và if..else if..else..
Dạng if..else..
Cú pháp:
if (<Biểu thức điều kiện>)
<Câu lệnh thực hiện điều kiện đúng>
else
<Câu lệnh thực hiện điều kiện sai>
Ý nghĩa:
Nếu <Biểu thức điều kiện> trả về true thì sẽ thực hiện <Câu lệnh thực hiện điều kiện đúng>. Ngược lại nếu trả về false sẽ thực hiện <Câu lệnh thực hiện điều kiện sai>
Ví dụ:
public class CauTrucReNhanhDangDu {
public static void main(String []args){
int age = 18;
if (age > 18)
System.out.print("Bạn đủ tuổi để đăng ký");
else
System.out.print("Bạn chưa đủ tuổi để đăng ký");
}
}
Sau khi run xong, kết quả sẽ in ra như sau:
Dạng if..else if..else
Cú pháp:
if (<Biểu thức điều kiện 1>)
<Câu lệnh thực hiện điều kiện 1>
else if (<Biểu thức điều kiện 2>)
<Câu lệnh thực hiện điều kiện 2>
(Nhiều câu điều kiện khác nếu cần)
else
<Câu lệnh thực hiện không đúng trong tất các điều kiện trên>
Ý nghĩa:
- Đây là dạng cấu trúc rẽ nhiều nhánh nếu ta muốn xét nhiều trường hợp để thực hiện rõ ràng hơn.
Ví dụ:
public class CauTrucReNhanhDangDu {
public static void main(String []args){
String job = "Sinh viên";
if (job == "Học sinh")
System.out.print("Bạn còn lứa tuổi học sinh");
else if (job == "Sinh viên")
System.out.print("Sinh viên có thể tham gia");
else
System.out.print("Không rõ công việc của bạn");
}
}
Sau khi run xong, kết quả sẽ in ra như sau:
Lưu ý: Nếu câu lệnh thực hiện gồm nhiều câu lệnh thì ta phải để vào trong cặp { }
3. Lời khuyên
Có thể không cần thực hiện nhưng những lời khuyên sau đây gần như là “Luật bất thành văn” trong lập trình cấu trúc rẽ nhánh không riêng ngôn ngữ Java.
3.1. Luôn dùng cặp { } và thụt lề dòng code vào trong
Mặc dù cặp { } chỉ dùng cho nhóm câu lệnh, nhưng việc sử dụng { } sẽ giúp ta dễ sửa đổi trong trường hợp sau này tao muốn thêm câu lệnh khác. Ngoài ra, ta sử dụng thụt lề để dễ nhìn hơn.
public class CauTrucReNhanhDangDu {
public static void main(String []args){
int age = 18;
if (age >= 18) {
System.out.println("Bạn đủ tuổi để đăng ký");
System.out.println("Mời bạn đăng ký");
}
else{
System.out.print("Bạn chưa đủ tuổi để đăng ký");
}
}
}
3.2. Không nên đưa câu lệnh if..else trong if..else quá nhiều lần
Có những trường hợp các bạn viết như thế này
Việc đưa quá nhiều câu rẽ nhánh vào trong trong câu rẽ nhánh là điều tối kị trong lập trình. Nó giống như tạo nhiều đường mê cung vậy. Có những lúc bạn sẽ không rõ vì sao kết quả trả về như vậy. Đặc biệt là khi có bug phát sinh. Lời khuyên là bạn nên để 1-2 câu điều kiện bên trong là hợp lý.
4. Kết
Như vậy chúng ta đã tìm hiểu cấu trúc rẽ nhánh trong Java. Cảm ơn các bạn đã theo dõi bài viết của mình. Chúc các bạn thành công. Hẹn gặp lại các bạn ở những chủ đề tiếp theo. Bái bai.