輸入999,則輸出“它是個3位數(shù)!”
if (num >= 0 ?&& num<=999999999){
while(num != 0){
count++;
num/=10;
}
System.out.println("它是個"+ count+"位的數(shù)!");
} else{
System.out.println("輸入有誤!");
}
請教這個語法,這個原理是如何得來的,為什么我輸入2位數(shù)就會輸出兩位數(shù),其中count與num沒有任何關(guān)聯(lián),百思不得其解,求解答。
2016-04-11
最外層判斷是否是十位的數(shù)字,如果是十位以內(nèi)的則進(jìn)行循環(huán)操作;
count++應(yīng)該不用解釋吧,就是每次滿足條件執(zhí)行循環(huán)就會加一,你應(yīng)該就是不理解 num/=10;這一行。
由于是int類型,每次除完會自動取整數(shù),以999為例:
num=999;
num/=10;????//第一次 ?num的值變?yōu)?9
num/=10;????//第二次 ?num的值變?yōu)?
num/=10;????//第三次 ? num的值變?yōu)? (執(zhí)行完這次循環(huán)已經(jīng)不能滿足條件num!=0,將會跳出循環(huán))
2016-04-11
num是int型變量num/10的時候只保留了整數(shù)部分舍去余數(shù),不存在小數(shù),所以會每除一次少一位,同時count++使得計數(shù)自加,當(dāng)num=0時循環(huán)條件不滿足自動退出
2016-04-11
count++執(zhí)行一遍,在執(zhí)行num = num / 10 ,num就會少一位,剛好?