Cấu trúc if else ? : trong Java

Trong bài này chúng ta tìm hiểu về  Cấu trúc if else ? : trong Java.Khi có một bài toán đặt ra, một là trường hợp này, ngược lại là trường hợp kia. Các bạn có thể sử dụng if else trong java. Tuy nhiên chúng ta hoàn toàn viết ngắn gọn hơn bằng cách sử dụng các toán tử trong java. Ở đây tôi nhắc đến toán tử ? : trong java.

? : là gì?

Cũng chẳng có gì đặc biệt cả, nó là một cách viết tắt cho biểu thức điều kiện if else trong java.

Cấu trúc:

(Boolean Expression) ? //do something: //do something ;

Như vậy các bạn có thể thấy được rằng :

  1. (Boolean Expression): là biểu thức kiểm tra điều kiện
  2. Sau dấu ? là những gì chúng ta xử lý (cái này tương tương với lệnh if)
  3. Sau dấu : là những gì chúng ta xử lý trường hợp ngược lại. (cái này tương tương với lệnh else)

Ví dụ áp dụng:

if (a > b) {
  max = a;
}
else {
  max = b;
}

Với bài toán trên chúng ta có thể code lại ngắn gọn với ? : trong java như sau:

max = (a > b) ? a : b;

(a > b) ? a : b; Là một biểu thức trả về một trong hai giá trị, hoặc b. Các điều kiện, (a > b)được kiểm tra. Nếu đúng là giá trị đầu tiên a, sẽ được trả lại. Nếu nó sai, giá trị thứ hai b, sẽ được trả lại. Giá trị nào được trả lại phụ thuộc vào phép thử có điều kiện a > b. Điều kiện có thể là bất kỳ biểu thức nào trả về một giá trị boolean.

Bài tập ví dụ áp dụng toán tử ? : 

Nhập vào một số n, kiểm tra số đó là chẵn hay lẻ sau đó in ra. 

Scanner input = new Scanner(System.in);
System.out.println("Nhập n : ");
int n = input.nextInt();
String name = (n % 2 == 0 ) ? "Số "+n+" Chia hết cho 2" : "Số "+n+" Không chia hết cho 2";
System.out.println(name);

Lưu ý:

Toán tử điều kiện chỉ làm việc để gán một giá trị cho một biến, sử dụng một giá trị trong một phương thức gọi, hoặc bằng một cách nào khác cho biết loại đối số thứ hai và thứ ba của nó. Ví dụ, hãy xem ví dụ dưới đây:

if (name.equals("Rumplestiltskin")) {
  System.out.println("Give back child");
}
else {
  System.out.println("Laugh");
}

Với biểu thức trên các bạn không được viết như thế này:

name.equals("Rumplestiltskin") 
 ? System.out.println("Give back child") 
 : System.out.println("Laugh");

Đối số đầu tiên của toán tử điều kiện phải có hoặc trả về kiểu boolean và các đối số thứ hai và thứ ba phải trả về các giá trị tương thích với giá trị mà toàn bộ biểu thức có thể được mong đợi trở lại. Bạn không bao giờ có thể sử dụng một kiểu void như một đối số cho toán tử ? :.

#Tổng kết

Các bạn có thể hoàn toàn sử dụng if else để thay thế cho toán tử logic ? : trên. Tuy nhiên một số trường hợp muốn sử dụng nhanh và đồng thời gọn code, thì các bạn nên sử dụng cách dùng ? : nhé. Là lập trình viên thì cần phải biết sử dụng những toán tử đơn giản này nhé, nếu bạn nào chưa nắm được thì quả thật đây là một bài viết dành cho các bạn! Chúc các bạn học tốt!

5 1 đánh giá
Đánh giá bài viết
Theo dõi
Thông báo của
guest
0 Góp ý
Phản hồi nội tuyến
Xem tất cả bình luận
x