為什么循環(huán)會(huì)斷掉?
int num = 11;
int count = 0;
if (num>=0&&num<=999999999 ){
? ? while (num != 0){
? ? ? ? count++;
? ? ? ? num /= 10;
? ? }
? ? System.out.println("它是個(gè)"+ count+"位的數(shù)!");
}else{
? ? System.out.println("輸入有誤!");
按理說num只要不是0while后面的大括號(hào)里的會(huì)一直循環(huán)下去吧?num會(huì)一直除以0,就算變成0循環(huán)也不會(huì)斷吧?雖然能得出count最后的結(jié)果,但是循環(huán)不斷應(yīng)該就沒法進(jìn)入system這項(xiàng)了吧,另外循環(huán)里的
count++;
? ? ? ? num /= 10;
上下位置可以調(diào)換嗎
2018-10-24
你定義的 num 是 int 類型(整形) 10也是整數(shù)? 整數(shù)除于整數(shù) 得到的結(jié)果也是整數(shù)? 所以 第二次 1/10 得到的結(jié)果是 0 會(huì)把 小數(shù)點(diǎn)后面忽略掉? ? num=0了 就循環(huán)結(jié)束了
另外count++;和? num /= 10;上下位置可以調(diào)換
2018-10-24
因?yàn)槟愣x的int型變量,當(dāng)1/10的時(shí)候是0了。不滿足num!=0的條件,便會(huì)跳出循環(huán)??梢赃M(jìn)行換位,當(dāng)進(jìn)入循環(huán)后。完成一次完整的循環(huán),即完成大括號(hào)里的所有步驟再進(jìn)行下一次循環(huán)。
2018-10-24
你定義的 num 是 int 類型(整形) 10也是整數(shù)? 整數(shù)除于整數(shù) 得到的結(jié)果也是整數(shù)? 所以 第二次 1/10 得到的結(jié)果是 0 會(huì)把 小數(shù)點(diǎn)后面忽略掉??
另外count++;和? num /= 10;上下位置可以調(diào)換
2018-10-24
定義的是整數(shù)int 的num,不是浮點(diǎn)數(shù)好吧!1/10得0,不是0.1 ,就斷了。可以換,循環(huán)括號(hào)里面是對(duì)上一次循環(huán)賦予的值進(jìn)行判斷,如果已經(jīng)進(jìn)入了循環(huán),就會(huì)到達(dá)括號(hào)前。再重新判斷。