Kiểm tra xem các số có bằng nhau không

java

(Lính Mới) #1

Xin chào ! trong java em muốn kiểm tra xem a,b,c có bằng nhau không thì phải viết a==b & a==c & b==c sao không thể viết a==b==c ? vậy nếu muốn kiểm tra 100 biến có bằng nhau không thì phải viết rất dài ạ ?!


(Nguyễn Đình Anh) #2

for loop sinh ra để làm gì vậy bạn ?


(Phạm Tiến Đạt) #3

Cho các số vào 1 mảng. Dùng cái này để lọc các phần tử trong mảng ra rồi check nếu độ dài mảng = 1 thì các số bằng nhau.

int[] arrNumber = ....; // https://stackoverflow.com/questions/14656208/array-of-unique-elements
if (arrNumber.Length == 1) 
{
    // do something here 
} 

(Quân) #4

Cách của bạn sẽ không tận dụng được đặc tính Short-circuit evaluation của biểu thức logic trong java, Có 1 cách khác mà vẫn giữ được đặc tính đó là lấy số đầu tiên, loop từ phần tử thứ 2 trở đi. nếu khác phần tử đầu thì nghĩa là các số k bằng nhau


(Trần Hoàn) #5
    public static <T extends Number> boolean isEqual(T... listInput)
    {
        if(listInput.length < 2)
            return true;
        return Arrays.stream(listInput).allMatch(t ->
                                                 {
                                                     if(t.getClass() == listInput[0].getClass())
                                                         return t.equals(listInput[0]);
                                                     return t.doubleValue() == listInput[0].doubleValue();
                                                 });
    }

(Thị Anh Mai) #6

CHắc là tránh lặp vô hạn thôi


(Team Việt Dev) #7

Hay bạn thử cách lấy phần tử đầu tiên trong mảng duyệt qua các phần tử còn lại, nếu khác thì return


83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?