Java 8 – Câu lệnh điều kiện


Được đăng vào ngày 19/04/2017 | 0 bình luận
Java 8 – Câu lệnh điều kiện
Đánh giá bài viết

Các câu lệnh trong một file .java được thực thi theo thứ tự từ trên xuống dưới, từ trái sang phải. Tuy nhiên có một số câu lệnh sẽ điều khiển hướng đi này theo một hướng khác, có thể là theo một điều kiện nào đó hoặc lặp đi lặp lại.

Câu lệnh if

Câu lệnh if là câu lệnh cơ bản nhất trong số các câu lệnh điều khiển hướng đi của chương trình. Câu lệnh này cho chương trình biết chỉ thực hiện một số câu lệnh chỉ khi có một điều kiện nào đó cho kết quả là true. Ví dụ:

class Bicycle {
    int speed = 0;
    void accelerate(int value) {
        speed = speed + value;
        if(speed > 10) {
            speed = 10;
        }
    }    
}

Trong đoạn code trên, chúng ta có lớp Bicycle có phương thức accelerate() nhận vào một giá trị, sau đó gán giá trị này cho thuộc tính speed, rồi chúng ta sử dụng câu lệnh if(speed > 10), tức là nếu thuộc tính speed có giá trị lớn hơn 10 thì thực hiện các câu lệnh trong khối lệnh sau đó, là gán giá trị cho speed10.

Câu lệnh if-else

Câu lệnh if-else là mở rộng từ câu lệnh if, tức là thêm một trường hợp nếu điều kiện cho kết quả false (điều kiện sai) thì thực hiện một số câu lệnh nào đó. Ví dụ:

class Bicycle {
    int speed = 0;
    void accelerate(int value) {
        if(speed + value <= 10) {
            speed = speed + value;
        } else {
            speed = 10;
        }
    }
}

Trong đoạn code trên, chúng ta lại có lớp Bicycle và phương thức accelerate(), trong đó chúng ta kiểm tra xem nếu speed + value cho ra kết quả bé hơn hoặc bằng 10 thì cộng speed bằng value, để kiểm tra trường hợp ngược lại thì chúng ta dùng từ khóa else và ghi các lâu lệnh phía sau đó, ở đây là gán giá trị 10 cho thuộc tính speed.

Ngoài ra chúng ta có thể dùng câu lệnh else if nhiều lần để kiểm tra nhiều điều kiện khác nhau, ví dụ:

class Score {
    int score = 8;
    String result = "";
    void grade) {
        if(score >= 9) {
            result = "Exellent";
        } else if(score >= 8) {
            result = "Good";
        } else if(score >= 5) {
            result = "Average";
        } else {
            result = "Below average";
        }
    }
}

Trong đoạn code trên chúng ta sử dụng câu lệnh if-else if-else nhiều lần, mỗi lần chúng ta kiểm tra giá trị của thuộc tính score và gán giá trị cho thuộc tính result tương ứng, ở đây thuộc tính score thỏa rất nhiều điều kiện nhưng khi chương trình gặp một điều kiện đúng thì chỉ thực hiện các câu lệnh trong điều kiện đó thôi.

Câu lệnh switch

Câu lệnh switch cũng tương tự như các câu lệnh ifif-else, tuy nhiên cách kiểm tra là xem một biến nào đó có bằng một giá trị nào đó hay không, chứ không thể kiểm tra nhiều điều kiện như if được, cũng vì cách kiểm tra đó cho nên switch chỉ kiểm tra được một số kiểu dữ liệu cơ bản nhất định, bao gồm char, byte, short, int và một số lớp nhất định là String, Character, Byte, Short, Interger. Ví dụ:

class SwitchDemo {
    public static void main(String[] args) {
        int month = 8;
        String monthString;
        switch(month) {
            case 1:
                monthString = "January";
                break; 
            case 2:
                monthString = "February";
                break;            
            case 3:
                monthString = "March";
               break;
            case 4:
                monthString = "April";
               break;
            case 5:
                monthString = "May";
               break;
            case 6:
                monthString = "June";
               break;
            case 7:
                monthString = "July";
               break;
            case 8:
                monthString = "August";
               break;
            case 9:
                monthString = "September";
               break;
            case 10:
                monthString = "October";
               break;
            case 11:
                monthString = "November";
               break;
            case 12:
                monthString = "December";
               break;
            default:
                monthString = "Invalid month";
                break;
        }
    }
}

Trong đoạn code trên thì monthString sẽ có giá trị là August.

Khối lệnh phía sau câu lệnh switch sẽ kiểm tra các giá trị của thuộc tính month, để kiểm tra một giá trị thì chúng ta ghi từ khóa case, rồi đến giá trị đó và dấu hai chấm. Theo sau là các câu lệnh cần thực hiện. Ngoài ra còn có một trường hợp đặc biệt là default, các câu lệnh sau default sẽ được thực hiện nếu không có case nào thỏa điều kiện.

Cuối cùng là câu lệnh break, câu lệnh này có tác dụng dừng thực hiện các câu lệnh điều kiện và vòng lặp (sẽ tìm hiểu sau). Lý do chúng ta sử dụng câu lệnh break trong switch là vì sau khi tìm được một giá trị phù hợp thì các giá trị phía sau case đó vẫn được thực thi. Trong đoạn code trên nếu chúng ta bỏ hết các câu lệnh break, thì các case 9. 10, 11, 12default vẫn sẽ được thực thi.

Được đăng vào ngày 19/04/2017