java中do...while与for嵌套,如下图为什么会死循环,第一次在do...while中为什么i会等于“0”不是等于100

2024-11-09 13:03:38
推荐回答(3个)
回答1:

  程序出现错误的地方是i/=10,这样执行for循环时,i<1000恒成立,所以导致死循环,解决方法就是:循环变量i的值不能改变,应该改动num的值。。

    这个求水仙花数可以不用两层循环的,如下:

int g,s,b;
  for(int i=100;i<1000;i++){
   g=i%10;
   s=i/10%10;
   b=i/100;
   if(g*g*g+s*s*s+b*b*b==i){
    System.out.println(i+"是水仙花数!");
   }
  }

回答2:

last不是等于零吗?当i!=0的时候就执行do i永远不会等于零所以死循环吧。错误百出啊,不知道你想完成什么逻辑。

回答3:

i<1000 永远成立。所以就是死循环。循环中。不要改变迭代变量。如果需要改变。建议用另一个变量引用迭代变量的值来进行先关操作