Ситуация: нужно получить тип byte
после операции int/int
.
Если результат входит в диапазон byte
, то вывести его, если не входит, то вывести сообщение-ошибку.
А так же обработать Exception
при делении на 0
и Exception
в принципе.
Как заставить такой кусок кода работать? Пробовал в 3 строке через byte tempResult = (byte) (operand1 / operand2);
, но в итоге получал для последнего вызова не то, что нужно.
public byte divisionByte(int operand1, int operand2) {
try {
byte tempResult = operand1 / operand2;
if (tempResult >= 127 && tempResult <= -128) {
System.out.println("Результат не входит в диапазон Byte.");
} else
System.out.println(operand1 + " / " + operand2 + " = " + tempResult);
return tempResult;
} catch (ArithmeticException e) {
System.out.println(operand1 + " / " + operand2 + " = We can't divide by 0. " + e + ". Shame on you!");
return 1;
} catch (Exception e) {
System.out.println("ERROR " + e);
return 1;
}
}
В Main
классе один вызов должен отдать значение, второй сообщение об ошибке при делении на 0
, третий что "Результат не входит в диапазон Byte"
calc.divisionByte(2, 2);
calc.divisionByte(2, 0);
calc.divisionByte(1000, 2);
Вы должны делить в int
, проверять диапазон, и только затем преобразовывать к byte
. Если вы сразу преобразовываете к byte
, то, например, значение 257 молча превратится в 1, и результат будет неправильным. В вашем коде условие tempResult >= 127 && tempResult <= -128
никогда не нарушится, потому что тип tempResult
уже byte
!
Поменяйте тип tempResult
на int
.
Правильным дизайном для такой функции было бы сообщать о проблемах разными типами исключений. Писать на консоль в функции деления — очень плохо. Возможно, пользователь функции вовсе не использует её в консольном приложении. Или приложение-то консольное, но он вывел что-то на консоль до вызова функции, и рассчитывает вывести что-то после.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Использую данные в формате JSON , которые хранятся внутри приложения в папке assets/station/musicjson
Как сделать, чтобы s1 и s2 передавались в setLogView по отдельности, а там складывались?
Подскажите не работает добавление в ListViewЗапрос работает, а список не обновляется
Делаю погоду и столкнулся с проблемой конвертации json в javaПроблема в том что сайт http://bulk