Mục lục
Khi lập trình sẽ có lúc bạn cần thực hiện một tập lệnh dựa vào một điều kiện cụ thể đó chính là lý do vì sao có mệnh đề điều kiện trong java.
Trong java chúng ta có các loại mệnh đề điều kiện sau:
- Mệnh đề if
- Mệnh đề if lồng nhau
- Mệnh đề if – else
- Mệnh đề if – else if
Mệnh đề if
Chúng ta sẽ bắt đầu với mệnh điều kiện đơn giản nhất mệnh đề if
Cú pháp
if (condition) { // do something }
Mệnh đề if sẽ thực hiện các tập lệnh được viết ở bên trong cặp dấu “{}” nếu thoả điều kiện.
Sơ đồ
Ví dụ: Đề bài cho bạn một số nguyên a, yêu cầu hãy xuất ra màn hình console “La so duong” nếu a lớn 0.
public class Main { public static void main(String[] args) { int a = 10; if (a > 0) { System.out.println("La so duong"); } } }
Output: La so duong
Mệnh đề if lồg nhau
Khi một câu điều kiện nằm bên trong một câu điều kiện khác thì ta gọi đó là câu điều kiện lồng.
Cú pháp
if(condition_1) { // do something if(condition_2) { // do something } }
Khi điều kiện condition_1 thoả, java sẽ thực hiện code bên trong thân mệnh đề if đầu tiên và sẽ kiểm tra tiếp điều kiện condition_2 nếu điều kiện condition_2 thoả sẽ tiếp tục thực hiện code bên trong mệnh đề if.
Ví dụ: Cho một số nguyên a, kiểm tra nếu a > 0 thì xuất ra “La so duong” và tiếp tục kiểm tra nếu a lớn 5 thì xuất ra “Lon hon 10”
public class Main { public static void main(String[] args) { int a = 11; if (a > 0) { System.out.println("La so duong"); if (a > 10) { System.out.println("Lon hon 10"); } } } }
Output:
La so duong
Lon hon 10
Mệnh đề if – else
Cú pháp
if (condition) { // do something } else { // do something }
Sơ đồ
Ví dụ: Cho một số nguyên a, kiểm tra nếu a > 0 thì xuất ra “La so duong” ngược lại thì xuất ra “”Khong phai so duong”
public class Main { public static void main(String[] args) { int a = 11; if (a > 0) { System.out.println("La so duong"); } else { System.out.println("Khong phai so duong"); } } }
Output: La so duong
Mệnh đề if – else if
Khi mệnh đề điều kiện của bạn có hơn 2 trường hợp thì bắt buồn chúng ta sẽ cần đến mệnh đề if – else – if
if(condition_1) { // Thực hiện nếu condition_1 true } else if(condition_2) { // Thực hiện nếu condition_2 đúng và condition_1 false } else if(condition_3) { // Thực hiện nếu condition_3 đúng và condition_1, condition_2 false } . . . else { // Nếu tất cả các điều kiện trên sai thì thực hiện code trong else }
Ví dụ: Cho số nguyên a và b, Xuất ra “Deu la duong” nếu a và b đều lớn hơn 0, “Nguoc nhau” nếu a dương b âm hoặc a âm b dương. “Be hon hoac bang 0” nếu a và b đều nhỏ hơn 0.
public class Main { public static void main(String[] args) { int a = 11, b = -1; if (a > 0 && b > 0) { System.out.println("Deu la duong"); } else if (a < 0 && b > 0) { System.out.println("Nguoc nhau"); } else if (a > 0 && b < 0) { System.out.println("Nguoc nhau"); } else { System.out.println("Be hon hoac bang 0"); } } }
Output: Nguoc nhau
Như vậy chúng ta đã tìm hiểu về câu điều kiện trong java rồi. Thế nhưng mình tự đặt câu hỏi nếu như mà chúng ta có quá nhiều điều kiện cần kiểm tra thì cứ if else nhiều như thế thì code có xấut không ta.
Ở phần sau chúng ta sẽ có một cấu trúc điều kiện mới giúp code chúng ta dễ nhìn hơn. Nhớ xem nhé các bạn.
Bài tập thực hành
1, Viết chương trình java nhập vào một số nguyên a là in ra “so duong” nếu a > 0, “so am” nếu a < 0.
2, Viết chương trình java giải phương trình bậc 2 aX2+ bX + c. Với a, b, c là 2 số nhập vào từ bàn phím.
3, Viết chương trình java nhập vào số nguyên a có giá trị 1 đến 7, tương ứng với số ngày trong tuần. Xuất ra ngày tương ứng trong tuần. ví dụ 1 => chu nhat, 2 => thu hai, 7 => thu bay
4, Viết chương trình java nhập vào số nguyên a là năm tương ứng. Kiểm tra xem năm đó có phải là năm nhuận hay không?
Bài tham khảo
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); /* 1, Viết chương trình java nhập vào một số nguyên a là in ra "so duong" nếu a > 0, "so am" nếu a < 0. */ System.out.print("Nhap a: "); int a_int = scanner.nextInt(); if (a_int > 0) { System.out.println("so duong"); } if (a_int < 0) { System.out.println("so am"); } /* 2, Viết chương trình java giải phương trình bậc 2 aX2+ bX + c. Với a, b, c là 2 số nhập vào từ bàn phím. */ System.out.print("Nhap a: "); double a = scanner.nextDouble(); System.out.print("Nhap b: "); double b = scanner.nextDouble(); System.out.print("Nhap c: "); double c = scanner.nextDouble(); double result = b * b - 4.0 * a * c; if (result > 0.0) { double r1 = (-b + Math.pow(result, 0.5)) / (2.0 * a); double r2 = (-b - Math.pow(result, 0.5)) / (2.0 * a); System.out.println("Phuong trinh co 2 nghiem " + r1 + " and " + r2); } else if (result == 0.0) { double r1 = -b / (2.0 * a); System.out.println("Phuong trinh co 1 nghiem " + r1); } else { System.out.println("Phuong trinh vo nghiem"); } /* 3, Viết chương trình java nhập vào số nguyên a có giá trị 1 đến 7, tương ứng với số ngày trong tuần. Xuất ra ngày tương ứng trong tuần. ví dụ 1 => chu nhat, 2 => thu hai, 7 => thu bay */ System.out.print("Nhap a: "); a = scanner.nextInt(); if (a == 1){ System.out.println("Chu nhat"); } else if (a == 2) { System.out.println("Thu hai"); } else if (a == 3) { System.out.println("Thu ba"); } else if (a == 4) { System.out.println("Thu tu"); } else if (a == 5) { System.out.println("Thu nam"); } else if (a == 6) { System.out.println("Thu sau"); } else if (a == 7) { System.out.println("Thu bay"); } else { System.out.println("Khong hop le"); } /* 4, Viết chương trình java nhập vào số nguyên a là năm tương ứng. Kiểm tra xem năm đó có phải là năm nhuận hay không? */ System.out.print("Nhap a: "); int year = scanner.nextInt(); boolean x = (year % 4) == 0; boolean y = (year % 100) != 0; boolean z = ((year % 100 == 0) && (year % 400 == 0)); if (x && (y || z)) { System.out.println(year + " la nam nhuan"); } else { System.out.println(year + " khong phai la nam nhuan"); } } }