Home > database >  not able to understand 2nd while loop in code below-:
not able to understand 2nd while loop in code below-:

Time:07-17

def summer_of69(arr):
    total =0
    add = True
    for num in arr:
        while add:
            if num!= 6:
                total =num
                break
            else:
                add = False
        while not add:
            if num!=9:
                break
            else:
                add= True 
                break
    return total

In this code if I pass summerof_69([2,5,6,9,11])? how 9 is getting ignored and 11 is getting added? The output I am getting 18 is correct but i want to know how 2nd while loop is working here! after 6 how its working for 9 and 11?

CodePudding user response:

In order to understand how any complex system of loops works you just have to go through the code step by step and evaluate the logic the way the computer does.

When num becomes 6, think about what happens when it goes through both while loops.

The first while loop does not add 6 to total and instead turns the variable add to False.

Since add is now False the second while loop triggers but then immediately breaks.

Now num is 9 and since add is False the first while loop does not execute.

Instead the second one does and add becomes True.

Finally, now that add is True, when num is 11, the first while loop executes, adding 11 to the total and the second while loop does not.

It just takes a moment to think it through in your head, and if it ever becomes too complicated to do in your head, there are plenty of visualize execution programs out on the web that do it for you.

  • Related