這個(gè)代碼看不懂 求詳細(xì)解釋 劃線那段什么意思
if (num >= 0 ?&& num<=999999999){
while(num != 0){
count++;
num/=10;
}
System.out.println("它是個(gè)"+ count+"位的數(shù)!");
} else{
System.out.println("輸入有誤!");
}
if (num >= 0 ?&& num<=999999999){
while(num != 0){
count++;
num/=10;
}
System.out.println("它是個(gè)"+ count+"位的數(shù)!");
} else{
System.out.println("輸入有誤!");
}
2016-07-08
舉報(bào)
2016-07-09
if (num >= 0 ?&& num<=999999999){????????//首先通過(guò)if(...){...}else{...}分開(kāi)兩種情況
????????while(num != 0){?????????????????????????????????? //第一種情況下,如果num不等于0,執(zhí)行代碼
????????????//已經(jīng)判定過(guò)num在0-999999999之間,又不等于0,那么肯定至少是1位數(shù),所以上來(lái)先加1
??? ????????count++;????????????
????????????//十進(jìn)制數(shù),除以10以后少一位,例如999除以10變成99.9,又因?yàn)槭莍nt型,所以結(jié)果是99
??? ????????num/=10;
????????????//得數(shù)(99)是否不等于零,true,再次循環(huán)
????????}
????????System.out.println("它是個(gè)"+ count+"位的數(shù)!");
} else{
????System.out.println("輸入有誤!");
}
重點(diǎn)分析:
count++;
num/=10;
999在規(guī)定范圍內(nèi),并且不等于零,執(zhí)行count++,此時(shí)count=1;
執(zhí)行num/=10;計(jì)算999/10的值,結(jié)果是99;
99不等于零,繼續(xù)循環(huán),執(zhí)行count++,值為2;
執(zhí)行num/=10;num值為9,不等于零,繼續(xù)循環(huán);
執(zhí)行count++,count值為3;
執(zhí)行num/=10,就是9/10,算出0.9,因int型所以num為0;
判斷num=0,跳出循環(huán);
輸出 count 結(jié)果!
小結(jié):這其實(shí)就是一個(gè)簡(jiǎn)單的算法,也就是說(shuō)滿(mǎn)足了0-999999999,且不等于0,肯定至少是1位數(shù),然后在利用整形除法運(yùn)算,只要sum/10不等于零,說(shuō)明sum還有位數(shù),直到計(jì)算到sum/10=0為止,這樣就計(jì)算到盡頭了,而每計(jì)算一次,sum就少一位,那么count就加1位;
題外話:看我這么辛苦,求采納吧?。。?br />
2016-07-08