迭代循环

时间:2017-08-10 05:01:55

标签: java loops for-loop

假设n = 20

所以在每6次迭代后我会做一些处理

     int i=0        
     for (t=6;t<20;t=t+6){
       while(i<=t){
          will do some processing


          i++;

        }

   }

在上面的代码中,它将在t = 18时终止,但我想继续到20。 怎么做?

3 个答案:

答案 0 :(得分:2)

您正在增加t变量6个单位...满足t<20的最后一个条件是t = 18

而不是t+=6执行正常t++并使用模%6

示例:

public static void main(String[] args) {
    int n = 20;
    for (int i = 0; i < n; i++) {
        //TODDY
        insert your while in here depending on when that must be executed
        if (i % 6 == 0) {
            System.out.println("am on a 6 modulo step..." + i);
        } else {
            System.out.println("foo@" + i);
        }

    }
    System.out.println("done");
}

答案 1 :(得分:1)

行为只是正确的..如果您想执行任何操作,请在满足条件后执行此操作,请尝试以下代码段:

int i = 0, n = 20;
    do{
        i += 6;
        System.out.println(i);
    } while (i < n);
System.out.println(i);

答案 2 :(得分:1)

你的代码每6次迭代都没有做某事,而是你正在做(n - n%6)次。你的“会做一些处理”是在里面。如果您在那里添加打印(或调试),您会注意到它;在n = 20的例子中,while将被执行18次;它会做18次。

如果你想要执行每第6次迭代,并且对于不能被6整除的情况包含一个额外的,那么你可以这样做:

if (n == 0) {
    return;
}

int number_iterations = n/6 + (n%6!=0 ? 1:0);

for (int i=0; i<number_iterations; i++) {
    // do something
}

这涵盖了你的要求;如果没有,请编辑问题以更清楚您的确切需求。