[solved] for loops with multiple variables

Is there a way to have a for loop with two variables that it iterates through.
I want one variable to start at 15 and go down to 0. I want the other variable to start at 39 and go down to 22.

1 Like

Simultaneously or one then the other or like each first variable increment runs all of the second ones each time or what?

for( int i = 15; i >= 0; i--)
{
  for( int j = 39; j >= 22; j--)
  {
    Serial.print("(");
    Serial.print(i);
    Serial.print(",");
    Serial.print(j);
    Serial.print("), ");
  }
}

I think you're asking for something that behaves like this:

 void setup() {
   int i;
   int k;

  Serial.begin(9600);

  i = 15;
   for (k = 39; k > 21; k--) {
      Serial.print("i = ");
      Serial.print(i);
      if (i != 0)
        i--;
      Serial.print("   k = ");
      Serial.println(k);
   }

}

void loop() {
  // put your main code here, to run repeatedly:

}

You can do this:

	for (int i = 15, j = 39; (i > 0) && (j > 22); i++, j--)
	{
            ....
	}

Regards,
Ray L.

2 Likes

i don't want nested if statements.

my code is:

for(int i = 9; i > -1; i--) {
    digitalWrite(outputPin, bitRead(value, i));
    outputPin = outputPin - 1;

I was hoping for a neater solution.
I am trying to do binary to decimal conversion and output it to an array of wires.

@RayLivingston

Your solution works fine. Thanks

1 Like

Couldn't you just type dec before the binary value instead of converting yourself? I thought the Arduino knows the diff formats of the same value.

135843:
I want one variable to start at 15 and go down to 0.

a total of 16 iterations

135843:
I want the other variable to start at 39 and go down to 22.

a total of 18 iterations.

How many times did you want the code in the loop to execute?