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

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

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 回答

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,否则就变成了死循环了。

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

当用num>1时,

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

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

大于0是正确的。

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

举报

0/150
提交
取消

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

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