学习使你快乐
2015-07-21 22:41
假如输入的num=20,if通过、进行while第一次循环:count=1、num=2。因为2!=0,继续第二次count=2、num=0.2此时应该要输出了"它是个2位数",而跳出循环条件应当为num==0(若num!=0将继续循环)可是此时的num=0.2,感觉矛矛盾盾的样子啊!
于是在下进行了一些简单分析,按照上面的推论,正确的答案应该将if(num!=0)改为if(num>=1)!in fact,修改后的答案的确通过了。但将原答案复制以后粘贴却也可以通过,which puzzled me again!难道当num小于1时系统自动视为0?c语言中好像有些默认的东西与我的猜测类似,但JAVA中就不明觉来了,估计应该跟前面的那个int取整有关。
没有前后代码不太明白你想问的地方。
如果你是想说
int num = 999
num / 1000的结果等于0这个问题的话,
因为num和1000都是int型,int / int 仍然是 int型,而int型是不保留小数位的,所以
999 / 1000 = 0
Java入门第一季(IDEA工具)升级版
1165172 学习 · 17581 问题
相似问题