下面是代码简化版,很简单的一段代码:
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;
}
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;
}
一句错话,你还想叫电脑怎么样啊
能执行就不错了
在我这确实是从31开始的
可能是因为命令行的缓存有限只能保存一定数量的输出,
你查看的时候,由于输出的内容过多前面输出的内容被后面输出的内容覆盖了,
而你没有看到31hello,你执行后马上按Ctrl+C就会发现,确实是从31开始的。而且这个循环也不是死循环,是可以退出的,
因为int表示的范围有限,+到最后会产生溢出而使i变为一个负数,推出循环。
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;
}
}
}
}