Changing iteration variable inside for loop in Python
python
Solution
Python has a few nice things happening in the background of for loops. For example:
for i in range(10):
will constantly set `i` to be the next element in the range `0-10` no matter what.
If you want to do the equivalent in python you would do:
i = 0
while i < 10:
print(i)
if i == 2:
i = 4
else: # these line are
i += 1 # the correct way
i += 1 # note that this is wrong if you want 1,2,4,5,6,7,8,9
If you are trying to convert it to `C` then you have to remember that the `i++` in the `for` loop will always add to the `i`.
Problem
I am trying to do something as simple as changing the varible in which I am iterating over (i) but I am getting different behaviours in both Python and C. In Python, ``` for i in range(10): print i, if i == 2: i = 4; ``` I get `0 1 2 3 4 5 6 7 8 9`, but the equivalent in C: ``` int i; for (i = 0; i < 10; i++) { printf("%d", i); if (i == 2) i = 4; } ``` I get `01256789` (note that numbers 3 and 4 don't appear, as expected). What's happening here?