Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
✓ ANSWER ACCEPTED

For loop acting weird?

So I was playing with putting for loops into each other and then suddenly the output kept printing the same loop twice,why?

for a = 10,1,-1 do
     for b = 5,1,-1 do
          for c = 2,1,-1 do
             print([[a : ]]..a..[[ 	b : ]]..b..[[ 	c : ]]..c)

         end
   end
end


I don't get why it's printing out the loops twice if I don't have a two on the first loop?

I have a ten so, shouldn't it just printing out ten times?

1 answer

✓ Accepted answer

Okay, let's step through this in a simpler way.

for a = 10,1,-1 do
	print("a = " .. a)
	for b = 5,1,-1 do
		print("\tb = " .. b)
		for c = 2,1,-1 do
			print("\t\tc = " .. c)
		end
	end
end

This is the output we get:

a = 10
	b = 5
		c = 2
		c = 1
	b = 4
		c = 2
		c = 1
	b = 3
		c = 2
		c = 1
	b = 2
		c = 2
		c = 1
	b = 1
		c = 2
		c = 1
a = 9
	b = 5
		c = 2
		c = 1
	b = 4
		c = 2
		c = 1
	b = 3
		c = 2
		c = 1
	b = 2
		c = 2
		c = 1
	b = 1
		c = 2
		c = 1
a = 8
	b = 5
		c = 2
		c = 1
	b = 4
		c = 2
		c = 1
	b = 3
		c = 2
		c = 1
	b = 2
		c = 2
		c = 1
	b = 1
		c = 2
		c = 1
a = 7
	b = 5
		c = 2
		c = 1
	b = 4
		c = 2
		c = 1
	b = 3
		c = 2
		c = 1
	b = 2
		c = 2
		c = 1
	b = 1
		c = 2
		c = 1
a = 6
	b = 5
		c = 2
		c = 1
	b = 4
		c = 2
		c = 1
	b = 3
		c = 2
		c = 1
	b = 2
		c = 2
		c = 1
	b = 1
		c = 2
		c = 1
a = 5
	b = 5
		c = 2
		c = 1
	b = 4
		c = 2
		c = 1
	b = 3
		c = 2
		c = 1
	b = 2
		c = 2
		c = 1
	b = 1
		c = 2
		c = 1
a = 4
	b = 5
		c = 2
		c = 1
	b = 4
		c = 2
		c = 1
	b = 3
		c = 2
		c = 1
	b = 2
		c = 2
		c = 1
	b = 1
		c = 2
		c = 1
a = 3
	b = 5
		c = 2
		c = 1
	b = 4
		c = 2
		c = 1
	b = 3
		c = 2
		c = 1
	b = 2
		c = 2
		c = 1
	b = 1
		c = 2
		c = 1
a = 2
	b = 5
		c = 2
		c = 1
	b = 4
		c = 2
		c = 1
	b = 3
		c = 2
		c = 1
	b = 2
		c = 2
		c = 1
	b = 1
		c = 2
		c = 1
a = 1
	b = 5
		c = 2
		c = 1
	b = 4
		c = 2
		c = 1
	b = 3
		c = 2
		c = 1
	b = 2
		c = 2
		c = 1
	b = 1
		c = 2
		c = 1

This makes sense.

We get to a for loop. It say, start a at 10. Check (that's the first line of output).

Now we enter the body of the a loop. We start b at 5. Check.

Now we went the body of the b loop. We start c at 2. Check.

Now the body of the c loop finished, so it advances to 1. Check.

Now 1 is where it was supposed to stop. So now we start the second iteration of the b loop. b is 4. Check.

Now we have to execute the body of the b loop; so c is 2, then 1. Check, check.

etc.

This discussion is preserved as it was. New answers, comments, and votes are closed.