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