On Thursday, February 7, 2019 at 11:45:23 PM UTC-7, Kaka wrote: > for i in range(len(A.hp)): > > for j in range(len(run_parameters.bits_Mod)): > req_slots[j] = math.ceil((A.T[i]) > > for g in Temp[i]["Available_ranges"][j]: > for s in range(g[0], g[-1]): > if (s+req_slots[j]-1) <= g[-1]: > if (Temp[i]['cost'][j] <= (run_parameters.PSD): ------ When > this condition is true i want to break the nested loop and start from the > begining > served_count +=1 > A.T[i]["First_index"]= s > A.T[i]["Last_index"]= s+req_slots[j]-1 > A.T[i]["Status"]= 1 > A.T[i]["Selected_MOD"] = j > break > > I have this code. When the last "if" condition is satisfied, i want to break > all the loops and start the nested loop for next i. else, the loop should > continue. > > can anyone help me?
In addition to the two methods Peter posted there is also the obvious way of using a flag (but perhaps this is what you were trying to avoid?) for i in (1,2,3): nexti = False for g in (1,2,3): for s in (1,2,3): print (i,g,s) if (g,s) == (2,2): nexti = True break if nexti: break You can also use exceptions to do a multi-level break: class Next_i (Exception): pass for i in (1,2,3): try: for g in (1,2,3): for s in (1,2,3): print (i,g,s) if (g,s) == (2,2): raise Next_i except Next_i: continue -- https://mail.python.org/mailman/listinfo/python-list