为什么num>0和num>1都是可以的

来源:4-14 Java 循环语句之多重循环

慕娘8023857

2017-08-17 11:33

public class fortest{

public static void main(String[] args) {

int num = 999;

int count = 0;

do {

count++;

num = num / 10;

}

while (num>1);

System.out.print("这个数是" + count + "位数");

}

}



写回答 关注

2回答

  • qq_呆萌一米_0
    2017-08-17 12:14:17
    已采纳

    do{}whhile()循环先执行一次count++,然后用999>0或999>1判断,执行第二次count++;然后用99>0或99>1判断(注意定义的是int类型,所有输出不是99.9,而是99);执行第三次count++;然后用0>0或0>1判断,不成了,跳出循环,说白了第三次9/10输出的int类型是0;所有num>0或num>1都是成立的。注意:num的类型不能改为double,否则就变成了死循环了。

  • 慕移动4553135
    2017-08-17 11:51:14

    当用num>1时,

    因为你的num是999,首位数是9,在循环2次后结果是9,仍然大于1,所以还会继续循环,最终循环3次,返回正确结果。

    如果换成首位数是1的比如num=100就会出错了,循环2次后结果是1,1不大于1,不满足循环条件,退出循环,最终循环2次,返回结果是2位数,错误。

    大于0是正确的。

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

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

1165172 学习 · 17581 问题

查看课程

相似问题