JavaRush/Java блог/Архив info.javarush/Кухня(); Задание N22.
terranum
28 уровень

Кухня(); Задание N22.

Статья из группы Архив info.javarush
участников
Кухня(); Задание N22. - 1 Правила [Одномерные массивы] 22. Дана последовательность целых положительных чисел. Найти произведение только тех чисел, которые больше заданного числа М. Если таких нет, то выдать сообщение об этом.
Комментарии (5)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
RabenokDmitry
Уровень 21
11 февраля 2015, 22:26
С названием метода, немного переборщил, но вышло вот как:)
public static int getMultiplivationMoreThenM(int[] array, int m) {
        int result = 1;
        boolean isMultip = false;
        for (int value : array) {
            if (value > m) {
                isMultip = true;
                result *= value;
            }
        }

        if (isMultip == false) {
            System.out.println("Таких числе нет! Метот возвратит 0!");
            return 0;
        }
        return result;
    }
dimaMJ
Уровень 25
27 августа 2014, 14:51
public static int multiply(int[] mas,int M)
    {
        int p=1;
        Boolean flag = false;
        for(int i=0;i<mas.length;i++)
        {
            if (mas[i]>M)
            {
                    flag = true;
                    p*=mas[i];
            }

        }

        if (!flag)
        {
            System.out.println("Чисел > " + M + " нет.");
            System.exit(0);
        }
        return p;
    }
terranum
Уровень 28
27 августа 2014, 11:22
Как вариант можно писать сообщение в консоль и возвращать 0.
А почему добавил throws IllegalArgumentException в сигнатуру?
Sultan
Уровень 16
27 августа 2014, 13:00
ну произведение ничего равно ничему, даже не нуля, или типа того. Поэтому функция ничего не возвращает. А в сигнатуру добавил, чтоб исключение обрабатывали в месте вызова функции.
Sultan
Уровень 16
26 августа 2014, 23:25
public static int method(int[] arr, double m) throws IllegalArgumentException {
    int p = 1;
    boolean flag = false;
    for (int n : arr) {
        if (n > m) {
            flag = true;
            p *= n;
        }
    }

    if (!flag) {
        throw new IllegalArgumentException("Not found decimal bigger than 'm'");
    }

    return p;
}