Как, в данном случае, работает & в if?

Почему при написании программы, которая бы сравнивала отдельные элементы массива и выводила самое большое значение, у меня в итоге последнее значение как будто не учитывается значение. В результате мне пишет MaxNumber - 5, хотя должно быть MaxNumber - 9.

public class Main {
  public static void main(String[] args) {
    int array [] = {-7, 5, -1, 3, 9,};
    if (array[0]>(array[1] & array[2] & array[3] & array [4])) {
        System.out.println("Max Number - " + array[0]);
        int MaxNumber = array[0];
    }
    else if (array[1]>(array[0] & array[2] & array[4] & array [3])) {
        System.out.println("Max Number - " + array[1]);
        int MaxNumber = array[1];
    }
    else if (array[2] > (array[0] & array[1] & array[3] & array [4])) {
        System.out.println("Max Number - " + array[2]);
        int MaxNumber = array[2];
    }
    else if (array[3] > (array[0] & array[2] & array[1] & array[4])) {
        System.out.println("Max Number - " + array[3]);
        int MaxNumber = array[3];
    }
    else if (array[4] > (array[0] & array[2] & array[3] & array [1])) {
        System.out.println("Max Number - " + array[4]);
        int MaxNumber = array[4];
    }
  }
}

Ответы (1 шт):

Автор решения: Arty Morris

Перепишите условие

if ((array[0]>array[1]) && (array[0]>array[2]) && (array[0]>array[3]) && (array[0]>array[4]))

Но вы как-то сложным путём пошли. Можно проще. Да и есть команды, для определения максимального числа с массиве

→ Ссылка