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

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

這個代碼看不懂 求詳細解釋 劃線那段什么意思


if (num >= 0 ?&& num<=999999999){
while(num != 0){
count++;
num/=10;

}
System.out.println("它是個"+ count+"位的數!");
} else{
System.out.println("輸入有誤!");
}

正在回答

2 回答

if (num >= 0 ?&& num<=999999999){????????//首先通過if(...){...}else{...}分開兩種情況
????????while(num != 0){?????????????????????????????????? //第一種情況下,如果num不等于0,執行代碼

????????????//已經判定過num在0-999999999之間,又不等于0,那么肯定至少是1位數,所以上來先加1

??? ????????count++;????????????

????????????//十進制數,除以10以后少一位,例如999除以10變成99.9,又因為是int型,所以結果是99

??? ????????num/=10;

????????????//得數(99)是否不等于零,true,再次循環
????????}
????????System.out.println("它是個"+ count+"位的數!");
} else{
????System.out.println("輸入有誤!");
}

重點分析:

count++;
num/=10;

999在規定范圍內,并且不等于零,執行count++,此時count=1;

執行num/=10;計算999/10的值,結果是99;

99不等于零,繼續循環,執行count++,值為2;

執行num/=10;num值為9,不等于零,繼續循環;

執行count++,count值為3;

執行num/=10,就是9/10,算出0.9,因int型所以num為0;

判斷num=0,跳出循環;

輸出 count 結果!


小結:這其實就是一個簡單的算法,也就是說滿足了0-999999999,且不等于0,肯定至少是1位數,然后在利用整形除法運算,只要sum/10不等于零,說明sum還有位數,直到計算到sum/10=0為止,這樣就計算到盡頭了,而每計算一次,sum就少一位,那么count就加1位;


題外話:看我這么辛苦,求采納吧!?。?br />

19 回復 有任何疑惑可以回復我~
count=count+1;
num=num/10;


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

舉報

0/150
提交
取消

這個代碼看不懂 求詳細解釋 劃線那段什么意思

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

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

幫助反饋 APP下載

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

公眾號

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