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