public class HelloWorld{
public static void main(String[] args){
int num = 999;
for (int count = 1;count < 10;count++){
if (num >= 0 && num <999999999){
System.out.println("它是个"+count+"位的数!");
}else{
System.out.println("输入一个小于999999999的数,亲!");
}
}
}
}
你打印的内容在循环体内,所以会打印10次,而且count你是定义的循环条件,这样你count值和num没有关系你看是不是想要这样的效果
public class HelloWorld {
public static void main(String[] args) {
int num = 999;
int count=1;//两位数要执行一次,所有这里赋值1
while (num/10 !=0) {
count++;
num/=10;
}
System.out.println("它是个" + count + "位的数!");
}
}
另外for循环和while循环各有特点,;要用for循环的话,条件可以这样写
for(int s=num;s/10!=0;s/=10){
count++;
}
你这个count的目的不是算位数吗,但是你给他放在循环了 他就只能是相当于i的作用,就是循环使的
你应该利用除10,利用位数的改变来计算count的值 ,推荐你java入门第一季,视频练习题有你的问题解决方法,当你的num=999,除10 ,除到0.999的时候 int值默认这个数是1,你吧这个当做循环的话,他才有可能计算位数啊
你的循环判断逻辑有问题,
不会走else里面的内容