package com.javarush.task.task04.task0409;
/*
Ближайшее к 10
*/
public class Solution {
public static void main(String[] args) {
displayClosestToTen(8, 11);
displayClosestToTen(7, 14);
}
public static void displayClosestToTen(int a, int b) {
int k = 10 - a;
int t = 10 - b;
abs(k);
abs(t);
if (k <= t) {
System.out.println(a);
}
else {
System.out.println(b);
}
}
public static int abs(int a) {
if (a < 0) {
return -a;
} else {
return a;
}
}
}
Почему выдает 14? Ведь 3 меньше, чем 4...Vladimir
8 уровень
По логике все должно работать правильно, но на выходе нет...
Решен
Комментарии (12)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Даниил
23 октября 2019, 16:31
int x = abs(10 - a);
int y = abs(10 - b);
if (x > y) {
System.out.println(b);
}
else {
System.out.println(a);
}
0
Vladimir
26 октября 2019, 07:28
Я так и написал, нет? И у вас ошибка, в условии должно быть не "больше", а "больше или равно".
Зачем "else" начинать с новой строки? Его же можно писать на одной строке с закрывающей фигурной скобкой.
Ладно, спасибо.
0
Ksenia VolkovaJava Developer в DXCMaster
16 октября 2019, 14:35полезный
Как ты думаешь, что происходит с переменными k и t в этих строчках:
+1
Vladimir
16 октября 2019, 15:09
Я думал, метод "abs" приводит любое число к положительному. А оказывается, он возвращает и отрицательные... сюрприииииииз. Получил новую порцию знаний, сейчас что-то придумаю.
Спасибо за ответ)
0
Vladimir
16 октября 2019, 15:23
abs... проверят, отрицательное число или положительное. Если отрицательное, возвращает отрицательное, а если положительное, возвращает положительное... Что же я упускаю...
0
Ksenia VolkovaJava Developer в DXCMaster
16 октября 2019, 15:25
Неа, не в ту сторону думаешь.
Вопрос был не о том, что возвращает метод, а о том, что происходит с k и t.
0
Vladimir
16 октября 2019, 15:30
Что происходит? k и t проверяются на наличие знака минуса перед ними...
Ничего не происходит... 🤷♂️🙂
0
Ksenia VolkovaJava Developer в DXCMaster
16 октября 2019, 15:37
Бинго!
0
Артем DivertittoSenior Android-разработчи в United TechMaster
17 октября 2019, 10:28
А нужно что бы значения из метода abs присваивались переменным которые ты в них передаешь
+1
Vladimir
17 октября 2019, 14:23
Спасибо. Я думал, значения из метода abs и так присваиваются переменным.
0
Ksenia VolkovaJava Developer в DXCMaster
17 октября 2019, 17:34решение
Метод работает с копиями переменных, исходные он никак поменять не может. Но можно им присвоить то значение, которое метод возвращает.
+2
Vladimir
18 октября 2019, 13:32
Спасибо, Ксю
0