V8006. Unconditional 'break/continue/return/goto' within a loop.
Анализатор обнаружил подозрительный цикл, в котором безусловно выполняется одна из следующих инструкций: continue, break, return, goto.
Рассмотрим пример:
for i := 0; i < max; i++ {
if i == index {
value += Calculate(i)
}
break
}
В данном коде инструкция break не принадлежит телу инструкции if, из-за чего выполняться будет вне зависимости от истинности условия i == index. Вследствие этого тело цикла будет всегда исполняться только один раз.
Корректный код мог бы выглядеть так:
for i := 0; i < max; i++ {
if i == index {
value += Calculate(i)
break
}
}