这答案?!

来源:4-15 编程练习

学习使你快乐

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取整有关。

写回答 关注

1回答

  • 星辉银河
    2015-07-22 00:32:56
    已采纳

    没有前后代码不太明白你想问的地方。

    如果你是想说

    int num = 999

    num / 1000的结果等于0这个问题的话,

    因为num和1000都是int型,int / int 仍然是 int型,而int型是不保留小数位的,所以

    999 / 1000 = 0

Java入门第一季(IDEA工具)升级版

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

1165172 学习 · 17581 问题

查看课程

相似问题