这个判断怎么错了?(4-15 编程练习)
/*
if(num==0){
System.out.println("它是个1位的数!");
}else{
for(int i = 1;num/i!=0;i=i*10){
count++;
}
System.out.println("它是个" + count + "位的数!");
}*/
你把num为0的时候给单独出来了。而且显示输出它是1位数。
问题就是0是1位数呢?还是0位数呢?
而慕课网num为0显示输出的是0位数。
每次用上一次的结果除以10,而不是第一次除以10,第二次除以100,第三次除以1000,你的i=i*10这么写的是不对的,这样每次除的i会越来越大,每循环一次i的值增加十倍,不能使得每循环一次原数除以10
抱歉,说错了,你写的是对的,我当做每次num会被重新赋值了。
你弄个用户自己输入,Scanner。。。当输入-1时你就知道了,应该就是你的for循环区间大小有问题
每次用上一次的结果除以10,而不是第一次除以10,第二次除以100,第三次除以1000,你的i=i*10这么写的是不对的,这样每次除的i会越来越大,每循环一次i的值增加十倍,不能使得每循环一次原数除以10
并没有错