为了账号安全,请及时绑定邮箱和手机立即绑定

为什么循环会断掉?

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;

上下位置可以调换吗

正在回答

4 回答

你定义的 num 是 int 类型(整形) 10也是整数  整数除于整数 得到的结果也是整数  所以 第二次 1/10 得到的结果是 0 会把 小数点后面忽略掉    num=0了 就循环结束了

另外count++;和  num /= 10;上下位置可以调换


1 回复 有任何疑惑可以回复我~
#1

慕盖茨6056564 提问者

明白了!谢谢您!
2018-10-25 回复 有任何疑惑可以回复我~

因为你定义的int型变量,当1/10的时候是0了。不满足num!=0的条件,便会跳出循环。可以进行换位,当进入循环后。完成一次完整的循环,即完成大括号里的所有步骤再进行下一次循环。

2 回复 有任何疑惑可以回复我~
#1

慕盖茨6056564 提问者

明白了!谢谢您!
2018-10-25 回复 有任何疑惑可以回复我~

你定义的 num 是 int 类型(整形) 10也是整数  整数除于整数 得到的结果也是整数  所以 第二次 1/10 得到的结果是 0 会把 小数点后面忽略掉  

另外count++;和  num /= 10;上下位置可以调换


0 回复 有任何疑惑可以回复我~
#1

江星辰

明白了!谢谢您!
2018-11-13 回复 有任何疑惑可以回复我~

定义的是整数int 的num,不是浮点数好吧!1/10得0,不是0.1 ,就断了。可以换,循环括号里面是对上一次循环赋予的值进行判断,如果已经进入了循环,就会到达括号前。再重新判断。

0 回复 有任何疑惑可以回复我~
#1

慕盖茨6056564 提问者

明白了!谢谢您!
2018-10-25 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么循环会断掉?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信