为了账号安全,请及时绑定邮箱和手机立即绑定

各位大神,麻烦帮看看这个代码有没有问题,测试的输出结果都是对着的

public class HelloWorld{

public static void main(String[] args){

long num = 99999l;

int count = 0;

for(;num!=0;num/=10)/*循环条件*/{

    count++;/*循环次数自增*/

  //  System.out.println(count);

}

 /*输出最终值*/System.out.println(count);

}

}

麻烦再帮我看看这个算法的逻辑是不是对的,谢谢


正在回答

2 回答

看起来没啥问题吧

0 回复 有任何疑惑可以回复我~

你这个会无无限循环吧,就算0.00000099999也不等于0啊,应该用大于或小于判定



public class HelloWorld{
    public static void main(String[] args){
        int num = 999;
        int count = 0;

        for (;num>1;count++)
        {
            num = num /10;
            if (num < 0)
            {
                count ++;
                break;
            }
        }
        System.out.println("它是个" + count +"位的数!");
    }
}



0 回复 有任何疑惑可以回复我~
#1

慕斯2112558 提问者

int和long的数据类型都是整数,小数点后自动省略的。如果用大于小于应该还要加等于吧,不然num/10=1的情况也就被for判断false了
2022-06-15 回复 有任何疑惑可以回复我~
#2

童之刚的刚

为什么要循环那么多次, 这是我的写法: for( int i = 0; i <= 10; i++) { num /= 10; count++; if(num >= 10) { continue; } else { System.out.println("它是个" + (count+1) + "位的数!"); break; }
3天前 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

各位大神,麻烦帮看看这个代码有没有问题,测试的输出结果都是对着的

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信