Хочу понять, по какому принципу работает метод - Math.abs().
Теперь по порядку :
В интернете прочитал что он подобен модулю, то есть дает абсолютное значение аргумента, который используется в математике |x|, тот модуль который подразумевает под собой положительное значение, |1|=1 и |-1|=1.
Если я правильно понял.
Дальше следует из этого то, что на этом моменте мне непонятно, каким образом он помогает в нахождении ближайшего числа, если мы его применяем в следующих позициях :
public static int abs(int a) {
if (a < 0) {
return -a;
} else {
return a;
}
То есть тут идет обработка переменной "a" которая выступает в числах 8 и 7, если это так, то теперь вопрос следующий возникает - почему именно переменная "а"?
По логике, если модуль делает преобразование в положительное число, то эти числа после 10-8 и 10-7 будут положительные.
Теперь следующий момент, которые мне еще более сложным показался, как осознать ключевую роль, в местах где прописывается функция abs :
if (abs(10-a) < abs(10-b)){
}
Так получилось что abs стоит перед переменной "a" и переменной "b", и что она теперь тут выполняет?
Думаю что если вы мне поможете понять эти две позиции, я смогу решить задачу, что для меня важно.
Если проблема состоит не только в них, поясните еще некоторые моменты?
package com.javarush.task.task04.task0409;
/*
Ближайшее к 10
*/
public class Solution {
public static void main(String[] args) {
closeToTen(8, 11);
closeToTen(7, 14);
}
public static void closeToTen(int a, int b) {
if (abs(10-a) < abs(10-b)) {
System.out.println(a);
}
if (abs(10-a) < abs(10-b)) {
System.out.println(b);
}
}
public static int abs(int a) {
if (a < 0) {
return -a;
} else {
return a;
}
}
}