package com.javarush.task.task02.task0217;
/*
Минимум четырех чисел
*/
public class Solution {
public static int min(int a, int b, int c, int d)
{
int x = min(a, b);
if(x < c & x < d)
return x;
if(c < x & c < d)
return c;
if(d < x & d < c)
return d;
}
public static int min(int a, int b)
{
int y;
if(a < b)
y = a;
else
y = b;
return y;
}
public static void main(String[] args) throws Exception {
System.out.println(min(-20, -10));
System.out.println(min(-40, -10, -30, 40));
System.out.println(min(-20, -40, -30, 40));
System.out.println(min(-20, -10, -40, 40));
System.out.println(min(-20, -10, -30, -40));
}
}
Вячеслав
2 уровень
Не работало пока в min(a, b, c, d) в конце не поставил еще один return d. Объясните пожалуйста почему?
Обсуждается
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Pavel Solokha
29 мая 2019, 04:25
public static int min(int a, int b, int c, int d)
Ваш метод должен возвращать значение типа int, а если return спрятан в if, программа считает, что условие в скобках может не выполниться, а значит return не сработает и значение не будет возвращено.
if (x < c & x < d)
return x;
else if (c < x & c < d)
return c;
else return d;
в этом случае метов всегда будет возвращать значение.
+1
Алексей
27 мая 2019, 19:57
Не работало в каком смысле? Не компилировалось или валидатор не принимал?
в данном случае внутри ветки
без ретурн ты результат не возвращаешь, значит метод не возвращает нужного ответа при выпадении данного условия. 0