En este programa, aprenderá a invertir un número usando un bucle while y un bucle for en Java.
Para comprender este ejemplo, debe tener el conocimiento de los siguientes temas de programación de Java:
- Java while y do… while Loop
- Java para Loop
Ejemplo 1: invertir un número usando un bucle while en Java
public class ReverseNumber ( public static void main(String() args) ( int num = 1234, reversed = 0; while(num != 0) ( int digit = num % 10; reversed = reversed * 10 + digit; num /= 10; ) System.out.println("Reversed Number: " + reversed); ) )
Salida
Número invertido: 4321
En este programa, el bucle while se usa para invertir un número como se indica en los siguientes pasos:
- Primero, el resto del número dividido por 10 se almacena en el dígito variable. Ahora, el dígito contiene el último dígito de num, es decir, 4.
luego se agrega el dígito a la variable invertida después de multiplicarla por 10. La multiplicación por 10 agrega un nuevo lugar en el número invertido. Un lugar multiplicado por 10 le da el décimo lugar, el décimo le da el centésimo, y así sucesivamente. En este caso, reverse contiene 0 * 10 + 4 = 4.
num se divide por 10 para que ahora solo contenga los primeros tres dígitos: 123. - Después de la segunda iteración, el dígito es igual a 3, invertido es igual a 4 * 10 + 3 = 43 y num = 12
- Después de la tercera iteración, el dígito es igual a 2, invertido es igual a 43 * 10 + 2 = 432 y num = 1
- Después de la cuarta iteración, el dígito es igual a 1, invertido es igual a 432 * 10 + 1 = 4321 y num = 0
- Ahora num = 0, entonces la expresión de prueba
num != 0
falla y el ciclo while sale. invertido ya contiene el número invertido 4321.
Ejemplo 2: invertir un número usando un bucle for en Java
public class ReverseNumber ( public static void main(String() args) ( int num = 1234567, reversed = 0; for(;num != 0; num /= 10) ( int digit = num % 10; reversed = reversed * 10 + digit; ) System.out.println("Reversed Number: " + reversed); ) )
Salida
Número invertido: 7654321
En el programa anterior, el ciclo while se reemplaza por un ciclo for donde:
- no se utiliza ninguna expresión de inicialización
- la expresión de prueba sigue siendo la misma (
num != 0
) - La expresión de actualización / incremento contiene
num /= 10
.
Entonces, después de cada iteración, se ejecuta la expresión de actualización que elimina el último dígito de num.
Cuando el bucle for sale, reverse contendrá el número invertido.