menu

VanThuong.Com

Blog học lập trình Java và SEO miễn phí.

Tìm hiểu về toán tử Logic trong Java

Posted by on
Trong bài viết trước, tôi đã chia sẻ cùng các bạn đọc về cấu trúc rẽ nhánh với câu lệnh if và switch trong Java. Việc đưa ra một quyết định có thể cần kiểm tra kết hợp nhiều biểu thức điều kiện bằng các toán tử Logic. Ví dụ, tôi có 1 danh sách nhân viên, tôi cần lọc ra những nhân viên có chức vụ là giám đốc và lương cơ bản trên 5 triệu. Đó là ví dụ về trường hợp cụ thể mà biểu thức điều kiện của chúng ta cần kết hợp 2 toán tử Logic cùng 1 lúc.
Tìm hiểu về toán tử Logic trong Java
Trong Java chúng ta có 3 toán tử Logic là: AND, OR và NOT. Bài viết này chúng ta sẽ tìm hiểu qua để áp dụng khi bắt đầu lập trình vời Java nhé.

Toán tử logic OR

Để biểu diễn phép OR chúng ta sẽ dùng hai thanh dọc (||). Nó được thực hiện như sau - Nếu bất kỳ một trong hai điều kiện trả về true, kết quả của biểu thức điều kiện sẽ là true.

Lấy ví dụ thế này nhé, tôi có danh sách các nhân viên ở nhiều tỉnh thành. Tôi cần tìm những nhân viên thuộc các tỉnh là "Da Nang""TP.HCM". Tôi sẽ áp dụng phép OR khi thực hiện kiểm tra điều kiện trong câu lệnh if. Trong ví dụ này tôi sẽ sử dụng biến String. Java cung cấp cho chúng ta 1 phương thức là equals() để so sánh 2 chuỗi có bằng nhau hay không, và tôi sẽ sử dụng nó để so sánh giá trị của biến province với "Da Nang" hoặc "TP.HCM" như sau.

if (province.equals("Da Nang") || province.equals("TP. HCM"))
Bạn cũng có thể viết như thế này
if (province.equals("Da Nang") | province.equals("TP. HCM"))

Điểm khác biệt giữa hai câu lệnh trên là khi bạn sử dụng 2 thanh dọc (||), nếu biểu thức đầu tiên đúng (true) thì biểu thức thứ 2 sẽ không được kiểm tra. Nếu bạn chỉ sử dụng 1 thanh dọc (|) thì JVM sẽ kiểm tra tất cả biểu thức. Trong trường hợp của chúng ta chỉ cần kiểm tra hoặc là "Da Nang" hoặc là "TP.HCM" nên sẽ dùng 2 thanh dọc nhé.

Toàn tử logic AND

Toán tử logic AND được thể hiện bởi một hoặc hai ký hiệu (&&) và cho kết quả của toàn bộ biểu thức là true nếu tất cả các biểu thức trong câu lệnh if đều đúng (true). Ví dụ, lọc ra những nhân viên có chức vụ "Giam doc" ở tỉnh thành "Da Nang". Tất cả diều kiện phải là true cùng 1 thời điểm:
if (position.equals("Giam doc") && province.equals("Da Nang"))
hoặc
if (position.equals("Giam doc") & province.equals("Da Nang"))

Khi sử dụng 2 ký hiệu và (&&) và biểu thức đầu tiên sai (false) thì biểu thức thứ 2 sẽ không được kiểm tra bởi vì dù thế nào đi nữa thì biểu thức tổng thể cũng sẽ là false. Nếu sử dụng 1 ký hiệu và (&) thì tất cả biểu thức sẽ được kiểm tra. Nhưng điều đó sẽ vô nghĩa nếu chúng ta cần toàn bộ biểu thức phải là true.

Toán tử logic NOT

Toán tử NOT được thể hiện bởi dấu chấm than và chúng ta có thể hiểu nó là phủ định kết quả. Tức là khi bạn có biểu thức logic a trả về kết quả true thì khi áp dụng toán tử NOT lên biểu thức này bạn sẽ nhận được kết quả là false. Ví dụ, nếu bạn muốn thực hiện 1 vài hãnh động chỉ dành cho những nhân viên thuộc các tỉnh thành không phải là "TP.HCM" thì chúng ta có câu điều kiện như thế này.
if (!province.equals("TP.HCM"))
Dưới đây là 1 ví dụ khác để bạn tham khảo - hai biểu thức sẽ trả về cùng một kết quả giống nhau.
if (price < 50)
if (!(price >= 50))
Toán tử NOT ở đây được áp dụng cho biểu thức trong ngoặc đơn.

Lời kết

Kết thúc bài viết này, tôi hi vọng rằng các bạn đọc giả sẽ hiểu được cách sử dụng các toán tử logic như thế nào trong các chương trình của mình. Việc áp dụng các toán tử khá quan trọng, giả sử bạn sai sót một ký hiệu thôi sẽ dẫn đến điều kiện sai và chương trình hoạt động không như mong muốn. Đây cũng là vấn đề mà tôi đã từng mắc phải khi mới bắt đầu làm quen với Java. Chúc các bạn học tốt nhé.
Đăng bình luận

menu