Метод, написанный в приведенном ниже коде, должен принимать целое число и приводить сумму 1-й цифры и последней цифры в целом числе.
ПРИМЕЧАНИЕ. Причина, по которой я задаю этот вопрос, хотя и узнала правильное решение, заключается в том, что мне нужно понять, почему мой код не работает, так как это делает меня лучшим программистом, пожалуйста, помогите.
public class FirstLastDigitSum {
public static int sumFirstAndLastDigit(int number)//to add first and last
//digits of a given interger
{
int firstdigit=0;
int lastdigit=0;
if(number>=0 && number<=9)
{
return number+number;
}
else if(number>9)
{
lastdigit=number%10;
while(number>0)
{
number/=10;
if(number<=9 & number>=0){
firstdigit=number;
}
}
return firstdigit+lastdigit;
}
else
return -1;
}
public static void main(String[] args)
{
System.out.println(sumFirstAndLastDigit(121));
}
}
В приведенном выше коде, если я сохраняю число / = 10 после блока, как показано ниже
if(number<=9 & number>=0){
firstdigit=number;
}
number/=10;
тогда мой код дает правильные результаты. например, если я ввожу 121 в метод, так как первая цифра равна 1, а вторая цифра равна 1, это суммирует оба и дает мне результат 2., что абсолютно правильно
Но если оставить число / = 10 над блоком if, как показано ниже
number/=10;
if(number<=9 & number>=0){
firstdigit=number;
}
Тогда мой код не дает правильного результата, он дает только последнее число, равное 1.
Я совсем не понимаю, почему это происходит, может кто-нибудь объяснить, пожалуйста.