Прорешиваю задачи из тем, которые плохо понял. Сейчас застопорился на задаче: "Наименьшее из 4 чисел". Вот мой код:
public class EqualFour{

	public static int min(int a, int b, int c, int d) {

	int m2 = min(a, b);

	int m3;


	if( m2 > c) {

		m3 = c;

	}
	else{

		m3 = m2;
	}

	if( c > d) {

		m3 = d;
	}
	else{

		m3 = c;
	}

	if( m2 > d){

		m3 = d;
	}

	else{

	m3 = m2;
	}

	return m3;

	}

    public static int min(int a, int b) {

    int m2;

	if( a > b){
	m2 = b;
	}

	else{
	m2 = a;
	}

	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));
    }
}
Первые три и пятый вывод правильные, в четвертом выводит с ошибкой. Не понимаю в чем там проблема. Буду благодарен за помощь) Сразу извиняюсь за код, знаю что можно покороче, но сначала хочу доделать и вникнуть, а потом думать над оптимизацией.