为什么循环会断掉?

来源:4-15 编程练习

慕盖茨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;

上下位置可以调换吗

写回答 关注

4回答

  • AbduRxit
    2018-10-24 21:11:33
    已采纳

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

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


    慕盖茨605...

    明白了!谢谢您!

    2018-10-25 10:37:45

    共 1 条回复 >

  • sky君
    2018-10-24 21:11:27

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

    慕盖茨605...

    明白了!谢谢您!

    2018-10-25 10:36:27

    共 1 条回复 >

  • AbduRxit
    2018-10-24 21:10:22

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

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


    江星辰

    明白了!谢谢您!

    2018-11-13 20:46:02

    共 1 条回复 >

  • qq_星河k_0
    2018-10-24 21:00:59

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

    慕盖茨605...

    明白了!谢谢您!

    2018-10-25 10:36:44

    共 1 条回复 >

Java入门第一季(IDEA工具)升级版

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

1165175 学习 · 17581 问题

查看课程

相似问题