Я пишу программу для курса java в университете, которая меняет заданное значение на целое число. Первый l oop работает нормально, однако по какой-то причине второй l oop даже не запускается и программа зависает. Я не уверен, почему это происходит, и, возможно, у кого-то есть ответ. Нам сказали хранить значения в переменных типа long, а не хранить в строках. Спасибо. `
Scanner keyboard = new Scanner(System.in); //For user input
long number = 0L; //Where the number entered by the user will be stored
long loopNumber = 0L; //To be able to control the loop more effectively. a do while loop just kept going forever for some reason
int nbDigits = 0; //Where the total number of digits will be stored
long reverse = 0L;//Where the reversed number will be stored
System.out.println("Enter a number with at most 10 digits:");
number = keyboard.nextInt();
keyboard.close(); //Close the Scanner object
//Counting the total number of digits in the number
loopNumber = number;
while(loopNumber != 0) {
loopNumber /= 10;
++nbDigits;
System.out.println("this is the value of nbDigits " +nbDigits );
}
//calculating the reverse order of the entered integer
loopNumber = number;
while(loopNumber != 0) {
reverse *= 10;
reverse = reverse + (number%10);
}
System.out.println("Number of digits is " + nbDigits +"\nReverse of " + number + " is " + reverse);