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