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

大神帮看看 哪里有问题 为什么运行不了

package laianxi;

public class laianxi{

public static void main(String[] args){

int num = 999;

int count = 0;

for(int i=1;i<10;i++){

    count++;

    int j=1;

    j*=10;

    if((num/j>0)&&(num/j<10))

    {

        System.out.println("它是个"+count+"位的数!");

    }


}






}

}


正在回答

1 回答

如果只针对你的代码和思路,在for循环里num和j永远不变化,里面的if判断语句一直是恒定的false或true。

int num=999;
int count=0;
for(int i=1;i<10;i++){
   count++;
   int j=1;
   j=j*10;
   if((num/j>0)&&(num/j<10)){
        System.out.println("它是个"+count+"位的数!");
   }
   num/=j;     //加上
}

但即便像上述这样添加之后又有一些问题和不合适的地方,1、num作为被判断数,不宜被改变;2、因为初始赋值,这样的算法会使得结果比实际位数小1;3、for循环在这里毫无用处,用while语句更方便,如果实在要用for:

int num=999;
int count=1;
int j=10;
for(;(num/j)!=0;j*=10){
    count++;
}
System.out.println("它是个"+count+"位的数!");

 

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

举报

0/150
提交
取消

大神帮看看 哪里有问题 为什么运行不了

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