Итак, у меня есть список mem , который представляет память, и в этом цикле я ищу dataSize количество пустых мест, которые представлены как "-" в памяти.Логика следующая: Сначала найдите "-" (пустой слот), затем пометьте его как начальное местоположение writeStart , а затем посмотрите, сколько еще пустых слотов у меня будет после этой позиции, и посчитайте его как writeSize . Found затем устанавливается на True, если я нашел достаточно слотов, иначе разрывы цикла и возврат к исходному циклу, который ищет другой пустой слот, как writeStart . Затем я использую writeStart и writeSize в качестве параметров для записи в память после этого цикла. Этот код работает правильно, но если я переключу третий , если оператор с else , он больше не будет работать.Зачем?Заранее спасибо.
for i in range(len(mem)):
if(mem[i] == "-"):
writeStart = i
writeSize = 0
for j in range(i, len(mem)):
if(mem[j] == "-"):
writeSize += 1
if(writeSize == dataSize):
found = True
break
if((mem[j] != "-") & (writeSize != dataSize)): #if switched with an else: error
i = j
break
if(found):
break