package com.javarush.task.task02.task0217;
public class Solution {
public static int min(int a, int b, int c, int d) {
int a2 = min(a, b);
if ((a2 < c) & (a2 < d))
{} // И ОБЯЗАТЕЛЬНО НУЖНО БЫЛО ПОСТАВИТЬ ЭТИ СКОБКИ, БЕЗ НИХ НЕ КОМПИЛИРОВАЛОСЬ...
//напишите тут ваш код
else if ((c < a2) & (c < d))
{return c;}
else if ((d < a2) & (d < c))
{return d;}
return a2;
}
public static int min(int a, int b) {
int a1;
if (a < b)
a1 = a;
else a1 = b;
return a1;
//напишите тут ваш код
}
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));
}
}
Также, пробовал этот код в Эклипсе, там обнаружил, что фигурные скобки можно убрать, НО "return a2;" приходится писать дважды((( не поуму как та...
Вот код с Эклипса:
public class Sravnenie {
public static int min(int a, int b, int c, int d) {
int a2 = min(a, b);
if ((a2 < c) & (a2 < d))
return a2;
if ((c < a2) & (c < d))
return c;
else if ((d < a2) & (d < c))
return d;
return a2;
}
public static int min(int a, int b) {
int a1;
if (a < b)
a1 = a;
else a1 = b;
return a1;
}
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));
}
}
Сергей
8 уровень
ПОЧЕМУ нужно "return a2;" писать после всех " if ", а в другом случае - ДВАЖДЫ? Помогите понять кто шарит!
Обсуждается
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Lev MoiseevSoftware Developer в FirstBit
28 сентября 2020, 05:54
в данном случае, можно было просто не писать
получил бы тот же результат
0
Lev MoiseevSoftware Developer в FirstBit
28 сентября 2020, 05:50
Метод у которого в заголовке определено возвращаемое значение (любое не void) при любом варианте исполнения кода (заходе в if) должен всегда возвращать значение указанного типа. Это защита от невнимательность человека. В противном случае дойдя до окончания кода метода, будет непонятно какой результат вернуть.
Можно не писать return в конце в том случае, если if описывает все возможные варианты (завершается else, без if), и в каждой ветке цикла есть return
Посмотри код:
в случае если у тебя a <= b метод вернет число int, в случае если a > b получается будет пустое значение. Это ошибка!
0