黑马程序员技术交流社区
标题:
为什么输出结果是三个0?
[打印本页]
作者:
马欢
时间:
2012-2-16 11:06
标题:
为什么输出结果是三个0?
本帖最后由 马欢 于 2012-2-16 12:11 编辑
int n=456;
int sum =0;
int m=0,h=0;
while(n!=0){
n /= 10;
sum++;}
for(int i=sum;i>0;i--){
h=(int)Math.pow(10, i-1);
m=n/h;
n=n%h;
System.out.println(m);
}
}
}
作者:
刘基军
时间:
2012-2-16 11:52
while循环结束n=0,所以n/h,n%h,m和n的结果都是0
作者:
王美霞
时间:
2012-2-16 11:54
因为在执行完while循环以后,n的值已经变为0,sum为3,再执行for循环以后都是0在参加运算,所以循环三次m的值都为0
作者:
陈丹阳
时间:
2012-2-16 12:02
public static void main(String[] args) {
//printNum(1456);
int n=456;
int sum =0;
int m=0,h=0;
while(n!=0){
n /= 10;
sum++;
} //此时sum=3 n =0 !!!!注意 这时候n已经变了
//再赋值一次 就解决问题
//n = 456;
for(int i=sum;i>0;i--){ //执行3次
h=(int)Math.pow(10, i-1); //以第一次为例 计算10的平方
m=n/h; // 你期望的m = n/h = 456/100 = 4,此步骤出错,得到结果为0,因为此时的n为0
n=n%h; // n = 456%100 = 56
System.out.println(m);
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2