java – 为什么/ loop循环变量在循环退出后递增1?不必要的副作
发布时间:2020-12-15 02:00:29 所属栏目:Java 来源:网络整理
导读:这是代码 – int i = 0;System.out.printf( "n%dnn",i ); // show variable i before loopfor( i = 0; i 8; i++ ){ System.out.printf( "%dt",i );}System.out.printf( "nn%dn",i ); // show variable i after loop 这是输出 – 0 0 1 2 3 4 5 6 7 8
这是代码 –
int i = 0; System.out.printf( "n%dnn",i ); // show variable i before loop for( i = 0; i < 8; i++ ) { System.out.printf( "%dt",i ); } System.out.printf( "nn%dn",i ); // show variable i after loop 这是输出 –
当我想在for循环退出后使用变量i时,我的问题出现了.我会假设我正在阅读7,基于零的计数中的第8个增量,但它实际上读为8!循环退出已经对变量i增加了一个增量. 为了解决这个问题,我必须做一些像i–在循环结束时以及在任何进一步的代码中使用它之前.在我看来,这使代码更难理解. 有更好的解决方案吗? 解决方法
当我是7时,条件i <1.仍然满足8,所以没有理由退出循环. 在循环之前声明循环变量并且之后使用它并不是很清楚.相反,考虑使用循环语句声明循环变量.
int numIterations = 8; for(int i = 0; i < numIterations; i++) { // ... } // continue doing something with numIterations,or numIterations-1 如果使用numIterations-1真的困扰你,你也可以使用int maxCounter = 7并使用i< = maxCounter代替循环不变量. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |