问答详情
源自:4-15 编程练习

编程练习遇到的问题

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

提问者:慕粉3461685 2016-06-05 21:36

个回答

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

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

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

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

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

  • 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+"位的数!");
    }


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

    它输出后还会继续循环

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

    你应该结束循环了