作者考虑了没?
这个有点小问题 count的值直接设为1的话,当num为个位数的时候,结果的是2位数。 结构有点小问题。
count从0开始
while(num!=0)应该就ok了
do...while语句会先执行一步,因此如楼上所说,num是个位会有点小问题,建议使用while,也可双层FOR循环
eg:
public class HelloWorld{
public static void main (String[] agrs){
int num=999878;
int count=0;
for(int j=10,i=1,x=1;num>i;i=i*10,x=x+1,j=j*10){
if(num<j){
count=x;
System.out.println("这是一个"+count+"位数");
break;
}
}
}
}