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