亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

輸入999,則輸出“它是個3位數!”

if (num >= 0 ?&& num<=999999999){
while(num != 0){
count++;
num/=10;
}
System.out.println("它是個"+ count+"位的數!");
} else{
System.out.println("輸入有誤!");
}

請教這個語法,這個原理是如何得來的,為什么我輸入2位數就會輸出兩位數,其中count與num沒有任何關聯,百思不得其解,求解答。

正在回答

3 回答

最外層判斷是否是十位的數字,如果是十位以內的則進行循環操作;

count++應該不用解釋吧,就是每次滿足條件執行循環就會加一,你應該就是不理解 num/=10;這一行。

由于是int類型,每次除完會自動取整數,以999為例:

num=999;

num/=10;????//第一次 ?num的值變為99

num/=10;????//第二次 ?num的值變為9

num/=10;????//第三次 ? num的值變為0 (執行完這次循環已經不能滿足條件num!=0,將會跳出循環)

0 回復 有任何疑惑可以回復我~
#1

菜鳥的羽毛 提問者

例如我附加num為333,也就是 int num=333; int count=0;// 這個值不變 if (num >= 0 && num<=999999999){ while(num != 0){ count++;// 自加1 原來是0自加1就變成了1 num/=10;// 333除以10 等于33.3,省去小數點就是33 } System.out.println("它是個"+ count+"位的數!"); } //不太明白 結果明明不就是讓輸出count的值么,怎么就會輸出的是數字3呢?
2016-04-12 回復 有任何疑惑可以回復我~
#2

菜鳥的羽毛 提問者

哦,我明白了,while 是自循環 比如我輸入333,333除以10三次就會變化成0然后就跳出,自循環三次count自加3次,輸出也就是3了
2016-04-12 回復 有任何疑惑可以回復我~
#3

bcp9527 回復 菜鳥的羽毛 提問者

是的,很多循環操作里都會加個count來統計有效循環的次數,再繼續擴展就是當count滿足某個條件時再繼續執行另一塊的操作,你可以自己試著傳入一個大一點的數字,然后設置循環3次后就跳出循環。 多練幾次就理解了。
2016-04-12 回復 有任何疑惑可以回復我~
#4

菜鳥的羽毛 提問者 回復 bcp9527

謝謝?。?!
2016-04-14 回復 有任何疑惑可以回復我~
查看1條回復

num是int型變量num/10的時候只保留了整數部分舍去余數,不存在小數,所以會每除一次少一位,同時count++使得計數自加,當num=0時循環條件不滿足自動退出

0 回復 有任何疑惑可以回復我~

count++執行一遍,在執行num = num / 10 ,num就會少一位,剛好?

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

輸入999,則輸出“它是個3位數!”

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號