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

突然我对于这个判断一个数是几位数的代码又蒙圈了

突然我对于这个判断一个数是几位数的代码又蒙圈了

慕粉uspeakeasy 2016-07-15 14:20:03
这个代码是对的,我回过头来再一看这个代码,我觉得蒙圈了。求各位大师,各位朋友,能给注释一下。谢谢。/* for这个循环里面为什么可以有两个不同的变量?第一个是初始化;第二个是判断条件;第三个是循环 .这个for条件语句牛啊.    */package com.weishu;public class weis {public static void main(String[] args){ int num = 1000; int count = 0;   for (count=0;num>0;count++){        num/=10;//等价于num=num/10;        num=num;                    }    System.out.println("它是个"+count+"位的数");}}
查看完整描述

2 回答

已采纳
?
Caballarii

TA贡献1123条经验 获得超629个赞

 for (count=0;num>0;count++){
     System.out.println(count);
    System.out.println(num);
       num/=10;//等价于num=num/10;
      System.out.println(num);
       //num=num;这句没作用,去掉
 }

多加几个打印语句,运行一下就能看出来程序是怎么跑的了,当然你要是会debug的话最好了

查看完整回答
反对 回复 2016-07-15
  • 慕粉uspeakeasy
    慕粉uspeakeasy
    有一句你说的挺对的"num=num;"这句确实没有用,我已经去掉了。不过你这个程序打不出来是几位数。还是谢谢~
  • Caballarii
    Caballarii
    我只是让你去看每一次循环运行出来的是什么结果,一步一步的过程过来就能了解为什么能运行出这样的结果了
?
绿洲仙人球

TA贡献39条经验 获得超47个赞

题主的代码还有可以优化的空间,这个小程序的算法思想就是通过商不为0进行除10计算,能进行几次就是几位数,需要删除的一行在下面代码中注明了。

package com.weishu;
public class weis {
    public static void main(String[] args){
        int num = 1000;
        int count = 0;
        for (count=0;num>0;count++){
           num/=10;//等价于num=num/10;
           //num=num;这句话是多余的,可以删除,上面的语句已经改变了num的值了
         }
        System.out.println("它是个"+count+"位的数");
    }
}


查看完整回答
1 反对 回复 2016-07-15
  • 2 回答
  • 0 关注
  • 1950 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信