這個代碼看不懂 求詳細解釋 劃線那段什么意思
if (num >= 0 ?&& num<=999999999){
while(num != 0){
count++;
num/=10;
}
System.out.println("它是個"+ count+"位的數!");
} else{
System.out.println("輸入有誤!");
}
if (num >= 0 ?&& num<=999999999){
while(num != 0){
count++;
num/=10;
}
System.out.println("它是個"+ count+"位的數!");
} else{
System.out.println("輸入有誤!");
}
2016-07-08
舉報
2016-07-09
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 />
2016-07-08