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

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 ạ ?!

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

5 Likes

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 
} 
1 Like

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

4 Likes
    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();
                                                 });
    }
1 Like

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

1 Like

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

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