VieTopik
Tiếng HànTiếng Anh.NET (C#)Java
  • Góc học tập
Tải app
  • Thư viện
  • Luyện thi
  • Cẩm nang
  • Góc học tập
Java CoreBắt đầu
Bài 4/19
5 phút

if/else và switch

Nội dung bài · 6 mục
  1. 1.Khái niệm
  2. 2.Ví dụ
  3. 3.switch
  4. 4.Thử ngay
  5. 5.Lỗi hay gặp
  6. 6.Tóm tắt

Đơn từ 500.000đ thì miễn phí ship, khách VIP được giảm giá, mỗi hình thức thanh toán xử lý một kiểu. Chương trình cần chọn làm việc này hay việc kia tuỳ điều kiện. Đó là nhiệm vụ của if và switch.

Khái niệm

🔀 if/else: chạy một khối code khi điều kiện đúng, và khối khác khi điều kiện sai.

🎛️ switch: chọn một nhánh để chạy dựa trên giá trị cụ thể của một biến.

Điều kiện trong if phải là một giá trị boolean, thường là kết quả của phép so sánh như total > 500000.

Ví dụ

void main() {
    long total = 350000;
    long shippingFee;

    if (total >= 500000) {
        shippingFee = 0;
    } else if (total >= 200000) {
        shippingFee = 15000;
    } else {
        shippingFee = 30000;
    }

    System.out.println(shippingFee);   // 15000
}
  • Java xét từng điều kiện từ trên xuống, gặp điều kiện đúng đầu tiên thì chạy khối đó rồi bỏ qua phần còn lại.
  • else if thêm điều kiện tiếp theo, else là trường hợp còn lại.
  • Code bên trong mỗi nhánh đặt trong cặp ngoặc { }.
Đúng Sai Đúng Sai total = 350000 total >= 500000? shippingFee = 0 total >= 200000? shippingFee = 15000 shippingFee = 30000
Chuỗi if / else if / else chọn phí ship

switch

Khi so một biến với nhiều giá trị cụ thể, switch gọn hơn một chuỗi else if:

void main() {
    String payment = "card";

    switch (payment) {
        case "cash":
            System.out.println("Thu tiền khi giao");
            break;
        case "card":
            System.out.println("Trừ tiền qua thẻ");
            break;
        default:
            System.out.println("Không hỗ trợ");
            break;
    }
}
  • Mỗi case là một giá trị cần so, kết thúc bằng break.
  • default chạy khi không case nào khớp.

Thử ngay

Dán vào Main.java, đổi giá trị total vài lần rồi chạy java Main.java:

void main() {
    long total = 500000;

    if (total > 500000) {
        System.out.println("Miễn phí ship");
    } else {
        System.out.println("Phí ship 30000");
    }
}

Đoán trước khi chạy: với total bằng đúng 500000, dòng nào được in?

Xem kết quả
Phí ship 30000

500000 > 500000 là sai, nên chương trình chạy nhánh else. Muốn tính cả mốc 500000 thì phải dùng >=.

Lỗi hay gặp

Dùng = thay cho ==. = là gán, không phải so sánh.

// SAI — lỗi compile: điều kiện phải là boolean
void main() {
    int quantity = 0;
    if (quantity = 0) {
        System.out.println("Hết hàng");
    }
}
// ĐÚNG
void main() {
    int quantity = 0;
    if (quantity == 0) {
        System.out.println("Hết hàng");
    }
}

Quên break trong switch. Java không báo lỗi, mà chạy tràn sang case kế tiếp.

// SAI — in cả "Đơn mới" lẫn "Đã thanh toán"
void main() {
    String status = "new";
    switch (status) {
        case "new":
            System.out.println("Đơn mới");
        case "paid":
            System.out.println("Đã thanh toán");
            break;
    }
}
// ĐÚNG
void main() {
    String status = "new";
    switch (status) {
        case "new":
            System.out.println("Đơn mới");
            break;
        case "paid":
            System.out.println("Đã thanh toán");
            break;
    }
}

Tóm tắt

  • if / else if / else xét điều kiện từ trên xuống, chỉ chạy nhánh đúng đầu tiên.
  • Điều kiện phải là boolean. So sánh dùng ==, không dùng =.
  • switch gọn hơn khi so một biến với nhiều giá trị cụ thể.
  • Mỗi case kết thúc bằng break, default bắt mọi trường hợp còn lại.
  • Java còn cách viết case "cash" ->, không cần break và không chạy tràn.

Tự kiểm tra

0/3 câu
Câu 1

int stock = 3; if (stock > 10) {...} else if (stock > 0) {...} else {...}. Nhánh nào chạy?

Câu 2

Trong switch, không case nào khớp với giá trị của biến. Chuyện gì xảy ra?

Câu 3

Bạn cần phân loại khách theo 4 hạng cố định: "silver", "gold", "platinum", "diamond". Cách viết nào gọn nhất?

Toán tử và ép kiểuVòng lặp

Nội dung bài

  1. 1.Khái niệm
  2. 2.Ví dụ
  3. 3.switch
  4. 4.Thử ngay
  5. 5.Lỗi hay gặp
  6. 6.Tóm tắt