Существуют ли ограничения в циклах For для более чем одного условия?

Положено ли более одного условия в цикл for?

например:

bool b = true;
for (int i = 0; i < 100 && b; i++)
b = changeB(i); //Imagine this does something with b

Поэтому мне сказали, что неправильно ставить такие условия в цикл for. Какие-то конкретные причины? Или это хорошо сделано?

-2

Решение

Почему помещать более одного условия в цикл for не должно быть нормально?

Все нормально.

Поэтому мне сказали, что неправильно ставить такие условия в цикл for. Какие-то конкретные причины?

Я подозреваю, что человек, который сказал это, может знать конкретные причины своего мнения.

Если бы вы представили последовательность условных выражений, каждое из которых более сложное, чем предыдущее, то, безусловно, наступит момент, когда условие станет слишком сложным, чтобы им следовать. В какой момент выражение становится слишком сложным, чтобы его можно было прочитать в циклическом условии, очень субъективно.


Интересно, что даже MISRA руководящие принципы — некоторые из которых субъективно глупый и ограничительный — явно разрешает использование «других» переменных управления циклами.

1

Другие решения

Это нормально, но самое главное иметь четкие имена переменных. B не достаточно описательное имя, например.

0

По вопросам рекламы [email protected]