在此程序中,您將學(xué)習(xí)在Java中使用while循環(huán)和for循環(huán)來反轉(zhuǎn)數(shù)字。
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("反轉(zhuǎn)后的數(shù)字: " + reversed); } }
運(yùn)行該程序時(shí),輸出為:
反轉(zhuǎn)后的數(shù)字: 4321
在此程序中,while循環(huán)用于按以下步驟反轉(zhuǎn)數(shù)字:
首先,將num除以10的余數(shù)存儲(chǔ)在變量digit中。 現(xiàn)在,digit包含num的最后一位,即4,然后將digit乘以10后,將其添加到反向變量中。乘以10將在反向數(shù)中添加一個(gè)新位置。 十分之一乘以10可得到第十位,十分之一則可得到百分?jǐn)?shù),依此類推。 在這種情況下,reversed包含0 * 10 + 4 =4。
然后num除以10,因此現(xiàn)在只包含前三個(gè)數(shù)字:123。
在第二次迭代后,digit等于3,reversed等于4 * 10 + 3 = 43和num= 12
在第三次迭代后,digit等于2,reversed等于43 * 10 + 2 = 432和num= 1
在第四次迭代后,digit等于1,reversed等于432 * 10 +1 = 4321和num= 0
現(xiàn)在num= 0,因此測(cè)試表達(dá)式num != 0失敗并且while循環(huán)退出。reversed已經(jīng)包含反向數(shù)字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("Reversed Number: " + reversed); } }
運(yùn)行該程序時(shí),輸出為:
Reversed Number: 7654321
在上面的程序中,while循環(huán)被for循環(huán)替換,其中:
不使用初始化表達(dá)式
測(cè)試表達(dá)式保持不變(num != 0)
更新/增量表達(dá)式包含num /= 10。
因此,在每次迭代之后,更新表達(dá)式都會(huì)運(yùn)行,從而刪除的最后一位num。
當(dāng)for循環(huán)退出時(shí),reversed將包含相反的數(shù)字。