у меня есть два варианта кода, по моему мнению абсолютно идентичны только оформлены иначе. Код №1.
public class Solution {
    public static void main(String[] args) {
        closeToTen(8, 11);
        closeToTen(7, 14);
    }
    public static void closeToTen(int a, int b) {
     int closeA = abs(10 - a), closeB = abs(10 - b);
    if ( closeA < closeB )
    {
        System.out.println(a);
    }
    else
    {
        System.out.println(b);
    }
    }
    public static int abs(int a) {
        if (a < 0) {
            return -a;
        } else {
            return a;
        }
    }
}
Код №2.
public class Solution {
    public static void main(String[] args) {
        closeToTen(8, 11);
        closeToTen(7, 14);
    }
    public static void closeToTen(int a, int b) {
    	int A = 10 - a, B = 10 - b;
    	abs(A);
    	abs(B);
    	if(A < B) {System.out.println(a);}
    	else {System.out.println(b);}
    	 }
    public static int abs(int a) {
        if (a < 0) {
            return -a;
        } else {
            return a;
        }
    }
}
Но результаты получаются абсолютно разные! А код теоретически делает одно и тоже.