为什么在没有终止条件的情况下“ for”循环永远重复打印值“ 0”?

时间:2019-02-13 16:21:31

标签: loops for-loop if-statement boolean

在没有if语句的情况下,它是一个无限循环,将0打印为一个无限数。 为什么要添加if语句,如果if一次又一次打印0和0?

for (int zz=0; ;zz++ ) {    //with the if statement 
if(zz==0)System.out.print(zz+"zz \n");
//System.out.print("....");

}

for (int zz=0; ;zz++ ) {    //without if statement.
System.out.print(zz+"zz \n");
}

1 个答案:

答案 0 :(得分:0)

您没有提到语言,但是变量zz没有无限范围(任何类型的变量都没有)。因此,一旦它的计数值超过了它的最高可表示值,它(可能取决于语言以及它是否会导致某种形式的溢出)将“包装”到其最低值,这将是一个非常负的数字,因为您的变量已签名。然后它将继续递增计数,直到再次打印到0为止。在您的代码中,它将永远永远这样做。您肯定会注意到它打印零的速度比“不使用if语句”版本打印其数字的速度慢得多吗?这是因为zz很少保留值0;例如每40亿次迭代一次。