public class HelloWorld{
public static void main(String[] args){
int num = 999;
int count = 0;
do {
count=count+1;
num=num % 10;
} while (num % 10 != num)
println("它是个" + count "位的数!");
}
}
%他是求余的 用/
你应该是想除以10吧,把'%'改成'/'即可;
另建议把代码写到方法体中,不要写在判断语句处;
代码修改后如下:
public class HelloWorld{
public static void main(String[] args){
int num = 999;
int count = 0;
while (num != 0) {
count = count+1;
num = num/10;
}
println("它是个" + count "位的数!");
}
}
num % 10 != num 改为 num >0
应改为
public class HelloWorld{
public static void main(String[] args){
int num = 999;
int count = 0;
do {
count=count+1;
num=num / 10;
} while (num / 10 != num);
System.out.println("它是个"+count+"位的数!");
}
}
问题在于
do {
count=count+1;
num=num % 10;
}
中,num=num%10,第一次运行:
num=999;
执行num=num%10后,num=9;
退出循环了。所以你的结果 是1位数
不该用mod方法求位数,正确的:
int num = 999;
int count = 0;
do {
count=count+1;
} while((num=num/10)!=0);//注意这里有个分号。问题描述中的没有,是会报错的
System.out.println("它是个" + count +"位数");
%是模运算,取余数的,你需要的是除法/