我有一个while循环:什么时候While循环中断
def setWorkDays(dayNameList):
workDays = []
while self.count > 0: #continue loop until all 5 work days have been filled or the loop breaks at the end
for day in dayNameList: #iterate over days, adding days to work days if they are not free days, AL days, preferred days, or free Saturdays
if day in self.freeDays or day in self.alDays or (day == 'Saturday' and self.satOff is True):
continue
elif day in self.programDays:
workDays.append(day)
self.count -= 1
elif self.preferredDay is not None and day in self.preferredDay:
continue
else:
workDays.append(day)
self.count -= 1
if self.preferredDay not in self.workDays: #if iteration completes, 5 work days have not been filled, and the preferred day has not been added, add the preferred day
workDays.append(self.preferredDay)
self.count -=1
return workDays
循环背后的想法是,这self.count命中0秒,循环终止。这是修改self.count的唯一函数。然而,我得到了奇怪的结果,其中循环似乎持续了至少1个计数太长,因为程序在某些情况下为self.count输出-1。这是否应该发生?不应该while循环终止第二个self.count命中零,还是它必须首先完成for循环?我应该在self.count递减之后添加条件逻辑来检查self.count是否为零,如果它是断点?这似乎是while循环的目的...
一个'while'循环背后的想法是,是检查的条件,执行下面的代码块整,然后再检查等 – Volatility
也许是一个格式错误,但是目前,由于最后的返回,这个代码总是只在单个循环迭代之后返回。 –
是的,这是基于假设while循环可能会终止在for循环的中间某处,一旦计数命中零。休息是我希望终止的最后一点。除了每次减量self.count之外,是否还有其他工具可以获得我想要的结果? – user1427661