package com.javarush.task.task02.task0217;
/*
Минимум четырех чисел
*/
public class Solution {
public static int min(int a, int b, int c, int d) {
int z = min(a, b);
if (z <= c && z <= d)
return z;
if (c <= z && c <= d)
return c;
else return d;
}
public static int min(int a, int b) {
int m2;
if (a <= b)
m2 = a;
else m2 = b;
return m2;
}
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));
}
}
________________________________________________________________________
package com.javarush.task.task02.task0217;
/*
Минимум четырех чисел
*/
public class Solution {
public static int min(int a, int b, int c, int d) {
int z = min(a, b);
if (z <= c && z <= d)
return z;
if (c <= z && c <= d)
return c;
if (d <= z && d <= c)
return d;
}
public static int min(int a, int b) {
int m2;
if (a <= b)
m2 = a;
else m2 = b;
return m2;
}
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));
}
}
Gennady Asatiani
8 уровень
Ребят почему в первом случае код корректен, а во втором нет???
Обсуждается
Комментарии (1)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Marvell QA Automation Engineer
22 сентября 2019, 11:47
потому что компилятор не пропускает когда все return в блоке if...
return должен гарантированно выполниться, компилятор не проверяет обязательно ли выполнится одно из условий нескольких if -ов.
в целом можно более компактно и наглядно решить return min(min(a,b),min(c,d));
+1