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

求解是一个死循环

public static void main(String[] args){

int num=999;

int count=10;

int j=0;

for(;num<=999999999&&num>=0;){

num/=count;

j++;

}

System.out.println("它是一个"+j+"位的数");

}

}


正在回答

2 回答

for(;num<=999999999&&num>=0;)这里错误,num一开始赋值999,然后for循环里面第二个条件是判断循环结束的,接着for循环里面的 num /= count,算到最后num最小也只能是0,然后始终满足num<=999999999&&num>=0,所以你这循环结束不了。你改成num<=999999999&&num>0,少一个=号就行了

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

慕虎6245855

为什么是num>0,0.9也是大于0 啊
2017-10-28 回复 有任何疑惑可以回复我~
#2

72fc5c0f8317 回复 慕虎6245855

int num = 999; num /= count ,你明白‘/’和‘%’的定义没?还有int可不可以有小数? num第一次循环的结果是99,第二次是9,第三次不是0.9,是0。至于为什么是0不是0.9,我建议你去看基础或者百度。
2017-10-28 回复 有任何疑惑可以回复我~
#3

慕娘5253255 提问者 回复 慕虎6245855

int型只计算整数,所以0.999就是0,num>=0条件成立,我也是后来细看才发现的。
2017-10-28 回复 有任何疑惑可以回复我~
#4

72fc5c0f8317 回复 72fc5c0f8317

上面是 num /= 10,打错了
2017-10-28 回复 有任何疑惑可以回复我~
查看1条回复

public static void main(String[] args){

int num=46464646;

int count=0;

for(;num<=999999999&&num>0;){

num/=10;

count++;

}

System.out.println("它是一个"+count+"位的数");

}

//问题已解决int型

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

慕虎6245855

为什么是num>0,0.9也是大于0 啊
2017-10-28 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

求解是一个死循环

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