Atimorap Paromita
Atimorap Paromita

Reputation: 73

iteration through a loop

Lets assume n=20

so after every 6 iterations I will do some processing

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


          i++;

        }

   }

In the above code it will terminate when t=18, but I want to continue until 20. How to do that ?

Upvotes: 0

Views: 76

Answers (3)

albert_nil
albert_nil

Reputation: 1658

your code is not doing something every 6th iteration, but instead you are doing (n - n%6) times. your "will do some processing" is inside the while. If you add a print (or debug) there you will notice it; on the n=20 example the while will be executed 18 times; it will do something 18 times.

if you want to execute every 6th iterations, and include one extra for the cases that are not exactly divisible by 6, then you could do:

if (n == 0) {
    return;
}

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

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

That covers what you requested; if not, pls edit question to be more clear on your exact needs.

Upvotes: 1

You are increasing the t variable 6 units... the last condition that satisfies the t<20 is when t = 18.

instead of doing t+=6 do a normal t++ and play with the modulo %6

example:

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");
}

Upvotes: 2

NamingException
NamingException

Reputation: 2404

The behaviour is correct only.. Still if you want to perform any operation, do it after the condition is met, try below snippet:

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

Upvotes: 1

Related Questions