Bài 4: Các loại cấu trúc điều khiển if else, switch case

1.Cấu trúc điều kiện if … else
if-then-else-flowchart-java
Bây giờ, chúng ta bắt đầu vào chủ đề chính của bài viết này:
Với những bạn đã từng học lập trình pascal, c, hoặc 1 ngôn ngữ nào đó, thì có lẽ quá quen thuộc với cấu trúc này. Chỉ có 1 chú ý nhỏ nếu như bạn nào mới chỉ học pascal đó là các khối lệnh trong Java được đặt trong 2 dấu ngoặc nhọn: { <khối lệnh> } thay vì Begin <khối lệnh> End như trong pascal.
Dạng 1:

if (<điều_kiện>){
      <khối_lệnh>;
}

Dịch ra ngôn ngữ nói thì nó là “Nếu ….thì….”
<điều_kiện> ở đây là dạng logic, nghĩa là nó chỉ có thể là đúng hoặc sai.
Ví dụ: Nếu số a chia hết cho 2 thì in ra thông báo đây là số chẵn. Chúng ta sẽ viết chương trình như sau:

public class JavaIF {
 
    public static void main(String[] args) {
        int a = 6;
        if (a % 2 == 0) {
            System.out.println("Thống báo: a là số chẵn");
        }
 
    }
}

Dạng 2:

if (<điều_kiện>){
    <khối _lệnh1>;
}else{
    <khối _lệnh2>;
}

Dịch ra ngôn ngữ nói thì nó là: “Nếu ….thì…còn không thì ….”
Ví dụ yêu cầu : Nếu số a chia hết cho 2 thì in ra thông báo đây là số chẵn, còn không thì báo đây là số lẻ. Chúng ta viết chương trình như sau:

public class JavaIF
    public static void main(String[] args) {
        int a = 7;
        if (a % 2 == 0) {
            System.out.println("Thống báo: a là số chẵn");
        }else{
            System.out.println("Thông báo: a là số lẻ");
        }
 
    }
}

2. Cấu trúc Switch Case

Đơn giản, khi chúng ta cần xử lý các sự kiện liên quan tới nhiều trường hợp giá trị của biến, nếu dùng if – else nhiều thì code sẽ dài, lặp, không mạch lạc, nên chúng ta dùng cấu trúc Switch Case để thay thế! Nó không phải là cách tốt nhất nhưng là phù hợp với nhiều tình huống!

switch (<biến>) {
case <giátrị_1> :
  <khối_lệnh_1>;
  break;
case <giátrị_2>:
  <khối_lệnh_2>;
  break;
….
case <giátrị_n>:
  <khối_lệnh_n>;
    break;
default:
    <khốilệnhdefault>;
}

Ví dụ: Với yêu cầu sau: Viết chương trình, gán biến nguyên a là 1 giá trị bất kỳ. Nếu a = 1 thì in ra màn hình là “Chủ nhật”, a = 2 thì in ra “Thứ Hai”, ….. a = 7 thì in ra “Thứ Bảy”. Nếu a không trong khoảng [1 ; 7] thì báo “Bạn đã gán sai giá trị, chỉ được gán số nguyên từ 1 tới 7”. Chương trình sử dụng Switch Case sẽ được viết như sau:

public class SwitchDemo {
 
    public static void main(String[] args) {
        int a = 3;
 
        switch (a) {
            case 1:
                System.out.println("Chủ nhật");
                break;
            case 2:
                System.out.println("Thứ Hai");
                break;
            case 3:
                System.out.println("Thứ Ba");
                break;
            case 4:
                System.out.println("Thứ Tư");
                break;
            case 5:
                System.out.println("Thứ Năm");
                break;
            case 6:
                System.out.println("Thứ Sáu");
                break;
            case 7:
                System.out.println("Thứ Bảy");
                break;
            default:
                System.out.println("Bạn đã gán sai giá trị, chỉ được gán số nguyên từ 1 tới 7");
                break;
        }
    }
}
Chú ý:

– Kiểu dữ liệu của biến trong switch chỉ hỗ trợ kiểu dữ liệu: int, byte, short,char, từ JDK 7, hỗ trợ thêm kiểu String và các giá trị truyền vào trong mỗi case thì phải trùng kiểu dữ liệu với biến trong switch.

– Lệnh “break” trong cấu trúc này không phải là bắt buộc phải có thì chương trình mới chạy, bạn có thể không dùng “break” với trường hợp nhất định, nhưng khi đó, chương trình sẽ chạy hết các khối lệnh trong các “case” tiếp theo sau, kể từ khi chương trình tìm được “case” có giá trị truyền vào thỏa mãn, tới khi hết “case” hoặc gặp lệnh “break”.

3.

Nguyễn Linh

Chia sẻ để cùng tiến bộ...