伪硕
2015-07-25 13:45
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+"位的数!");
}
}
}
}
如果只针对你的代码和思路,在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+"位的数!");
Java入门第一季(IDEA工具)升级版
1165172 学习 · 17581 问题
相似问题