下面是代码简化版,很简单的一段代码:
public static String binary(int test)
{
String temp="";
for(int i=31;i>=0;i++) //这个地方应该是i--,但是我一时手误,写成i++,结果我就解释不了    
{
          System.out.println(i+"hello");   //主要是这个显得怪异,每次i从一个很大的数开始,而且每次i的开始还不一样,有从33475开始,有从9981开始,好象每次都不一样!不应该从31开始吗??如果改成i--则一切正常,为什么??~~

}
return temp;
}
   

解决方案 »

  1.   

    不知道是不是死循环???for(int i=31;i>=0;i++)
      

  2.   

    for(int i=31;i>=0;i++)
    一句错话,你还想叫电脑怎么样啊
    能执行就不错了
      

  3.   

    没有啊,
    在我这确实是从31开始的
    可能是因为命令行的缓存有限只能保存一定数量的输出,
    你查看的时候,由于输出的内容过多前面输出的内容被后面输出的内容覆盖了,
    而你没有看到31hello,你执行后马上按Ctrl+C就会发现,确实是从31开始的。而且这个循环也不是死循环,是可以退出的,
    因为int表示的范围有限,+到最后会产生溢出而使i变为一个负数,推出循环。
      

  4.   

    就是从31开始,你再试试。public class TestCircle {
        public static void main(String[] args)    {
            String temp="";
            int j = 0;
            for(int i=31;i>=0;i++) //这个地方应该是i--,但是我一时手误,写成i++,结果我就解释不了    
            {            
                  System.out.println(i+"hello");   //主要是这个显得怪异,每次i从一个很大的数开始,而且每次i的开始还不一样,有从33475开始,有从9981开始,好象每次都不一样!不应该从31开始吗??如果改成i--则一切正常,为什么??~~
                  if (j++>10) {
                      break;
                  }                                  
            }
        }
    }