Bài 12: Java cơ bản: Biểu thức Boolean


Tóm tắt nội dung: Giới thiệu các biểu thức boolean và cách sử dụng biểu thức boolean.

Nội dung:
Ta có đoạn code sau:
      public static void main(String[] args) {
            int a = 0;
            int b = 5;
            if ((a > 10) && (b < 10)) {
                  System.out.println(“true”);
            }else
                  System.out.println(“false”);
           
            if ((a > 10) || (b < 10)) {
                  System.out.println(“true”);
            }else
                  System.out.println(“false”);
      }
Đối với biểu thức && đúng khi và chỉ khi hai biểu thức điều kiện đều đúng nên ở if – else thứ nhất sẽ có kết quả là false vì a>10 là sai.
Đối với biểu thức || sai khi và chỉ khi cả 2 hai biểu thức điều kiện đều sai nên if – else thứ hai sẽ có kết quả true vì b<10 là đúng.
Ngoài ra còn có biểu thức & và | ý nghĩa của 2 biểu thức này thì giống với 2 biểu thức && và || nhưng cách làm việc thì lại khác.
          Ở biểu thứ && và || thì khi nó xét điều kiện của if nếu biểu thức điều kiện đầu tiên đúng (sai) thì nó không cần xét tiếp biểu thức điều kiện thứ 2.
          Ở biểu thức & và | thi nó xét điều kiện của if nếu biểu thức điều kiện đầu tiên đúng (sai) thì nó vẫn xét biểu thức điều kiện thứ 2. Xem thêm clip để hiểu thêm phần này.

Nếu bạn có câu hỏi vui lòng để lại comment hoặc gởi câu hỏi theo địa chỉ: studyandsharevn@gmail.com.

About Study and Share

Study and Share knowledge

Posted on October 12, 2011, in Java Basic Tutorials and tagged , , . Bookmark the permalink. 4 Comments.

  1. Nguyễn Bảo Trung

    Mình lập trình theo nhưng có sửa đổi chút ít:
    Nếu a = 10 , b = 3 và biến ab thuộc boolean
    câu lệnh mình là:
    if (( a++>10) &&(b++>2)) {
    abc=true;
    } else {
    abc=false;

    ………………………
    Và mình có kết quả sẽ là abc = false 😐
    Tại sao vậy??? chả phải điều kiện xét là a=a+1 tức a+11 lớn hơn 10 rồi sao. Nếu mình giảm a++>9 thì sẽ được true.
    Hoặc nếu trước lệnh IF mình thêm dòng ++a; thì ok.
    Bạn có thể nói rõ vấn đề này được không? Mình dùng Eclipse để lập trình.

  2. nhatchimai_n@yahoo.com

    Theo mình là như thế này:
    Kết quả đoạn code trên không có gì vô lý cả, mà do bạn hiểu nhầm ở điều kiện if thôi.
    Trong if là biểu thức “&&” chỉ đúng khi tất cả cùng đúng (true), b++ > 2 luôn luôn đúng bỏ qua, a++ thực chất lúc trong phép so sánh thì a++ = 10 chứ không phải = 11, sao khi so sánh với 10 xong thì a++ mới được tăng lên 11. Nên biểu thức “&&” sai (false) vì có một phép toán sai.

  3. bạn xem lại kỹ clip ở trên sẽ hiểu thôi mà. giải thích kỹ sẽ là :
    a++>10 tức là biểu thức so sánh được thực hiện trước khi tăng, lúc này a=10
    =>((a++>10)&&(b++>2)) là false
    lúc này sẽ thực hiện lệnh else
    còn ngược lại
    ++a. tức là biểu thức được thực hiện sau khi tăng hay lúc này a=11
    không tin bạn cứ thử thay a++ bằng ++a sẽ được kết quả là true . như bạn mong muốn 🙂

  1. Pingback: 58 video hướng dẫn Java Basic chi tiết | Nesk BM

Leave a comment