Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 8 của 8
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Ý nghĩa câu lệnh "?" trong Java nghĩa là gì?

    Mình đang xem 1 ví dụ về mô hình MVC.có một file Sanpham.java trong Model
    Mã:
    package shopping;
    import java.io.Serializable;
    /**
    
     * Lớp đặc tả cho 1 sản phẩm
    
     * @author VoVanHai
    
     */
    public class Sanpham  implements Serializable{
        private String msSP;
      private String tenSP;
        private float dongia;
        public Sanpham(String msSP, String tenSP, float dongia) {
            this.msSP = msSP;
           this.tenSP = tenSP;
    
            this.dongia = dongia;
    
        }
    
        public float getDongia() {
            return dongia;
        }
        public void setDongia(float dongia) {
            this.dongia = dongia;
    
        }
        public String getMsSP() {
            return msSP;
        }
        public void setMsSP(String msSP) {
            this.msSP = msSP;
        }
     
        public String getTenSP() {
            return tenSP;
        }
        public void setTenSP(String tenSP) {
            this.tenSP = tenSP;
        }
        @Override
        public boolean equals(Object obj) {
            if (obj == null) {
                return false;
            }
            if (getClass() != obj.getClass()) {
                return false;
            }
            final Sanpham other = (Sanpham) obj;
            if ((this.msSP == null) ? (other.msSP != null) : !this.msSP.equals(other.msSP)) {
                return false;
            }
            return true;
        }
        @Override
        public int hashCode() {
            int hash = 7;
            hash = 19 * hash + (this.msSP != null ? this.msSP.hashCode() : 0);
            return hash;
    
        }
     
        @Override
        public String toString() {
            return msSP+";"+ tenSP;
        }   
    }
    trong đó có đoạn code : if ((this.msSP == null) ? (other.msSP != null) : !this.msSP.equals(other.msSP))
    Dấu ? và :! trong câu lệnh này có ý nghĩa gì?

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Lại một trường hợp chưa học bò đã lo học chạy
    Đó là toán tử 3 ngôi trả về giá trị biểu thức trước dấu : nếu như biểu thức logic trước dấu ? là đúng, ngược lại là trả về giá trị biểu thức sau dấu :

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Đó là toán tử điều kiện

    Cú pháp:
    <biểu_thức logic> ? giá_trị_1 : giá_trị_2;

    Ghi chú:
    phép toán nhận giá trị 1 nếu biểu thức logic đúng...nếu không thì nhận giá trị 2

    VD:
    //hour sẽ nhận giá trị h nếu h >= 0 và h <= 12 (nếu h = 13 thì hour = 0)
    int hour = (h >= 0 && h <= 12) ? h : 0;

    Câu lệnh này được sử dụng khi thực hiện kiểm tra các biểu thức logic để nhận lấy 1 giá trị nào đó.

    Nó cũng giống if..else, nhưng viết mã sẽ nhanh hơn. Nó cũng cho phép kiểm tra lồng nhau:
    int hour = (h >= 0 && h <= 12) ? (s >= 0 && < 60 ? h: 0) : 0;

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    if rút gọn thôi

  5. #5
    trường hợp của bạn là Tenary Operator : if rút gọn
    có rất nhiều cách sử dụng dấu ? trong java
    người ta thường sử dụng khi làm việc với Generic hơn


    Ex : public static ArrayList<? extends Person> getName(){....}

  6. #6
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi Wazi Armstrong
    Lại một trường hợp chưa học bò đã lo học chạy
    Đó là toán tử 3 ngôi trả về giá trị biểu thức trước dấu : nếu như biểu thức logic trước dấu ? là đúng, ngược lại là trả về giá trị biểu thức sau dấu :
    Rất thích câu trả lời này.

    [ Không spam nhưng thật sự là cảm hứng khi đọc câu trả lời của anh. -- mong ad và mod thông cảm đừng ban nick ]

  7. #7
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi rogerminh2401
    Mình đang xem 1 ví dụ về mô hình MVC.có một file Sanpham.java trong Model
    trong đó có đoạn code : if ((this.msSP == null) ? (other.msSP != null) : !this.msSP.equals(other.msSP))
    Dấu ? và :! trong câu lệnh này có ý nghĩa gì?
    A ? B : C hiểu nôm na là if rút gọn thôi
    Mã:
    if (A) {
       B;
    }
    else {
       C;
    }
    Còn !A tức là phủ định của A (A TRUE thì !A FALSE và ngược lại)

  8. #8
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi ghost.love
    Rất thích câu trả lời này.

    [ Không spam nhưng thật sự là cảm hứng khi đọc câu trả lời của anh. -- mong ad và mod thông cảm đừng ban nick ]
    ...nói thật rất ít tài liệu chính quy nói về toán tử tam phân này đa số chỉ nói If , if ...else, if...else if...else.
    Nó không khó nhưng trong tài liều lại ít viết [IMG]images/smilies/dont_tell_anyone.gif[/IMG][IMG]images/smilies/dont_tell_anyone.gif[/IMG]

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •