课程
/后端开发
/Java
/Java入门第一季(IDEA工具)升级版
for(int i=1;i<10;i++){ if(num/(10^i)<=1){ count=i; System.out.println("它是个"+count+"位的数!"); } } 谁能教一下问题在哪,感激不尽
2016-06-05
源自:Java入门第一季(IDEA工具)升级版 4-15
正在回答
^ 是按位异或 不是幂指数的意思。比如二进制 1001 ^ 1100 = 01010^0=0,1^1=0 ,1^0 = 1,0^1=1。
慕粉3461685 提问者
问题很多,^是判断真假的,你应该是想用*;if(num/(10*i)<=1)里,用count=i会造成死循环;
所以for里条件不对得换,if的循环体里的加限制的条件语句
爱爱慕
且“^”是异或符号吧
楼主,你可以用纸和笔进行手动演算一下,当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+"位的数!"); }
它输出后还会继续循环
你应该结束循环了
举报
0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始
4 回答练习题中遇到的问题
2 回答8-1编程遇到的问题
2 回答编程练习题
3 回答编程练习题
2 回答编程练习。。