English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In questo programma, imparerai a invertire un numero utilizzando il ciclo while e il ciclo for in 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("Numero invertito: " + reversed); } }
Quando si esegue questo programma, l'output è:
Numero invertito: 4321
In questo programma, il ciclo while viene utilizzato per invertire il numero seguendo i seguenti passaggi:
Prima di tutto, archiviare il resto di num diviso per 10 nella variabile digit. Ora, digit contiene l'ultimo numero di num, ovvero 4, poi moltiplicare digit per 10 e aggiungerlo alla variabile invertita. Moltiplicare per 10 aggiungerà una nuova posizione nel numero invertito. Un decimo moltiplicato per 10 darà il decimo posto, un centesimo darà il centesimo, e così via. In questo caso, reversed contiene 0 * 10 + 4 = 4.
Poi num diviso per 10, quindi ora contiene solo i primi tre numeri: 123.
Dopo la seconda iterazione, digit è uguale a 3, reversed è 4 * 10 + 3 = 43 e num = 12
Dopo la terza iterazione, digit è uguale a 2, reversed è 43 * 10 + 2 = 432 e num = 1
Dopo la quarta iterazione, digit è uguale a 1, reversed è 432 * 10 + 1 = 4321 e num = 0
Ora num = 0, quindi l'espressione di test num != 0 fallisce e il ciclo while si esce. reversed contiene già il numero invertito 4321.
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("Numero inverso: " + reversed); } }
Quando si esegue questo programma, l'output è:
Numero inverso: 7654321
Nel programma sopra, il ciclo while è sostituito dal ciclo for, dove:
Senza espressione di inizializzazione
L'espressione di test rimane invariata (num != 0)
L'espressione di aggiornamento/incremento contiene num /= 10.
Pertanto, dopo ogni iterazione, l'espressione di aggiornamento viene eseguita, eliminando l'ultimo numero num.
Quando il ciclo for esce, reversed conterrà il numero inverso.