public class HelloWorld{
public static void main(String[] args){
int num = 999;
int count = 0;
if (num >= 0 && num<=999999999){
do{count++;num/=10};
while (num != 0)
}
System.out.println("它是个"+ count+"位的数!");
} else{
System.out.println("输入有误!");
}
}
}
public class HelloWorld{ public static void main(String[] args){ int num = 999; int count = 0; if (num >= 0 && num<=999999999){ do{count++;num/=10}; while (num != 0) }//首先do-while循环的语法错了,应该把while写在外面,并用英文分号结尾 System.out.println("它是个"+ count+"位的数!"); } else{ System.out.println("输入有误!"); } } } /*其次 最重要的一点是:int型变量是一个字节的,也就是最大可表示的数是127(最小到-128),因此你的sum会在0-127之间循环往复,永远到不了999999999,所以你的if语句只是保证sum是个小于128的非负数,在do-while循环这边会只作用一次也就是sum等于0的这一次,所以你的错不仅仅是一个语法错误,在变量的定义上也有问题,随之而来的问题就在你的循环或者条件判断上出现了逻辑上的错误,建议定义基本类型变量时,仔细考虑你的目的用途*/
do{ count++; num/=10; } while (num != 0);
你的num/=10分号的位置不对。
while (num != 0)后面少了一个分号。