Neste programa, você aprenderá a inverter um número usando um loop while e um loop for em Java.
Para entender este exemplo, você deve ter conhecimento dos seguintes tópicos de programação Java:
- Java while e do … while Loop
- Java para Loop
Exemplo 1: reverter um número usando um loop while em 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); ) )
Resultado
Número invertido: 4321
Neste programa, o loop while é usado para reverter um número conforme fornecido nas seguintes etapas:
- Primeiro, o resto do num dividido por 10 é armazenado no dígito variável. Agora, o dígito contém o último dígito de num, ou seja, 4.
dígito é então adicionado à variável invertida após multiplicá-la por 10. A multiplicação por 10 adiciona uma nova posição no número invertido. Um-ésimo lugar multiplicado por 10 dá a você o décimo lugar, o décimo dá o centésimo e assim por diante. Neste caso, invertido contém 0 * 10 + 4 = 4.
num é então dividido por 10 para que agora contenha apenas os três primeiros dígitos: 123. - Após a segunda iteração, o dígito é igual a 3, invertido é igual a 4 * 10 + 3 = 43 e num = 12
- Após a terceira iteração, o dígito é igual a 2, invertido é igual a 43 * 10 + 2 = 432 e num = 1
- Após a quarta iteração, o dígito é igual a 1, invertido é igual a 432 * 10 + 1 = 4321 e num = 0
- Agora num = 0, então a expressão de teste
num != 0
falha e o loop while sai. invertido já contém o número invertido 4321.
Exemplo 2: reverter um número usando um loop for em 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); ) )
Resultado
Número invertido: 7654321
No programa acima, o loop while é substituído por um loop for onde:
- nenhuma expressão de inicialização é usada
- a expressão de teste permanece a mesma (
num != 0
) - expressão de atualização / incremento contém
num /= 10
.
Portanto, após cada iteração, a expressão de atualização é executada e remove o último dígito de num.
Quando o loop for termina, reversed conterá o número invertido.