编程练习遇到的问题

来源:4-15 编程练习

慕粉3461685

2016-06-05 21:36

for(int i=1;i<10;i++){    if(num/(10^i)<=1){        count=i;        System.out.println("它是个"+count+"位的数!");    } } 谁能教一下问题在哪,感激不尽

写回答 关注

6回答

  • weibo_慕运维0559024
    2016-06-05 22:24:46
    已采纳

    ^ 是按位异或 不是幂指数的意思。比如二进制     1001 ^ 1100 = 0101
    0^0=0,1^1=0 ,1^0 = 1,0^1=1。

    慕粉3461...

    非常感谢!

    2016-06-06 09:59:22

    共 1 条回复 >

  • 爱爱慕
    2016-06-05 22:12:36

    问题很多,^是判断真假的,你应该是想用*;if(num/(10*i)<=1)里,用count=i会造成死循环;

    所以for里条件不对得换,if的循环体里的加限制的条件语句

    慕粉3461...

    非常感谢

    2016-06-06 10:02:46

    共 2 条回复 >

  • YBYB
    2016-06-05 22:12:17

    且“^”是异或符号吧

  • vivizhang
    2016-06-05 22:09:24

    楼主,你可以用纸和笔进行手动演算一下,当i= 1和2是if条件不成立,但是i = 3到9,if条件都是成立的所以,count最终会赋值成9,结果就是错误的了,解决的办法是在count = i;之后加一条break;语句终止循环,输出的就是正确的值了

    for (int i = 0; i < 10; i++) {
        if (num / (10 ^ i) <= i) {
            count = i;
            break;
        }
        System.out.println("它是个"+count+"位的数!");
    }


    慕粉3461...

    非常感谢

    2016-06-06 10:00:37

    共 1 条回复 >

  • YBYB
    2016-06-05 22:06:29

    它输出后还会继续循环

    慕粉3461...

    非常感谢

    2016-06-06 10:01:39

    共 1 条回复 >

  • YBYB
    2016-06-05 22:05:30

    你应该结束循环了

    慕粉3461...

    非常感谢

    2016-06-06 10:01:12

    共 1 条回复 >

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

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

1165172 学习 · 17581 问题

查看课程

相似问题