I want a loop that can count back and forth from 0 to 3. At first it counts up 1 each time and then when it reaches 3, it will count backwards to 0, then back up to 3 and so on. I already have a runnable that makes it count automatically.

Here is the code:

``````moveInt++;
animateInt++;
if(animateInt==20){
if(!max){
}
if(max){
}
animateInt=0;

if(badGuyInt==3){ //When it reaches 3, it will start to count down.
max = true;
}
if(badGuyInt==0){// When it reaches 0, it counts up.
max = false;
}
}``````

The way it's written now, it just goes back to 2 when it reaches 3 then back to 3, and back to 2 and so on. I want it to go all the way back to 0 before it starts to count up again.

Just have a flag which may call goUp. Then switch it when it hits your top or bottom value.

``````boolean goUp = true;
int cnt = 0;
for (int i=0; i<18; i++) {
if (goUp) { cnt++; }
else { cnt--; }
System.out.println(cnt);
if (cnt==3) { goUp …``````

## All 4 Replies

Just have a flag which may call goUp. Then switch it when it hits your top or bottom value.

``````boolean goUp = true;
int cnt = 0;
for (int i=0; i<18; i++) {
if (goUp) { cnt++; }
else { cnt--; }
System.out.println(cnt);
if (cnt==3) { goUp = false; }
if (cnt==0) { goUp = true; }
}``````

Highly informative post, keep them coming!!..

You can simplify Taywin's method by starting your flag at 1, and multiplying by -1 at each boundary. Then just add the flag to the current total, and you've eliminated the middle if.

You can do simplify further by just counting and then flipping.

``````public static void main(String[] args)
{

int i = 0;
int j = 1;
while (true)
{
do{
System.out.println(i);
i+=j;
} while (i%3 != 0);
j*=-1;
}

}``````

EDIT: of course now I'm sitting here trying to eliminate that inner while clause, to simplify even further. I'm sure it'll come to me.

Trivial solution:

``````public static void main(String[] args)
{

int[] array = {0,1,2,3,2,1};
int i = 0;
while (true)
{

System.out.println(array[i]);
i = ++i%6;
}
}``````

Okay, it's not really counting. That means... it doesn't count. Sorry.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts learning and sharing knowledge.