慕盖茨6056564
2018-10-24 20:05
int num = 11;
int count = 0;
if (num>=0&&num<=999999999 ){
while (num != 0){
count++;
num /= 10;
}
System.out.println("它是个"+ count+"位的数!");
}else{
System.out.println("输入有误!");
按理说num只要不是0while后面的大括号里的会一直循环下去吧?num会一直除以0,就算变成0循环也不会断吧?虽然能得出count最后的结果,但是循环不断应该就没法进入system这项了吧,另外循环里的
count++;
num /= 10;
上下位置可以调换吗
你定义的 num 是 int 类型(整形) 10也是整数 整数除于整数 得到的结果也是整数 所以 第二次 1/10 得到的结果是 0 会把 小数点后面忽略掉 num=0了 就循环结束了
另外count++;和 num /= 10;上下位置可以调换
因为你定义的int型变量,当1/10的时候是0了。不满足num!=0的条件,便会跳出循环。可以进行换位,当进入循环后。完成一次完整的循环,即完成大括号里的所有步骤再进行下一次循环。
你定义的 num 是 int 类型(整形) 10也是整数 整数除于整数 得到的结果也是整数 所以 第二次 1/10 得到的结果是 0 会把 小数点后面忽略掉
另外count++;和 num /= 10;上下位置可以调换
定义的是整数int 的num,不是浮点数好吧!1/10得0,不是0.1 ,就断了。可以换,循环括号里面是对上一次循环赋予的值进行判断,如果已经进入了循环,就会到达括号前。再重新判断。
Java入门第一季(IDEA工具)升级版
1165552 学习 · 17587 问题
相似问题