Формат оператора for
:
for (A; B; C)
D
В этом:
A
выполняется первым. Обычно используется для установки начального состояния для l oop. B
оценивается перед каждой итерацией, чтобы проверить, продолжать ли l oop (если B
оценивается как «true» »Или не ноль) или выход (если B
оценивается как« ложь »или ноль). C
оценивается после каждой итерации. Обычно он используется для четкой корректировки состояния между итерациями l oop. D
- это оператор (часто составной оператор { … }
), который должен быть повторен.
В вашем for
l oop вместо B
имеется marksGained = 50
. Это выражение присваивания; это ставит 50
в marksGained
. Выражение присваивания имеет значение; это значение хранится в левом операнде. Так что это B
всегда имеет значение 50
. Это не ноль, поэтому for
l oop всегда продолжается.
У вас есть marksGained == idealMarks
вместо C
. Это сравнение. Он оценивается как «истина» (1), если два операнда равны, и «ложь» (0) в противном случае. Это не имеет никакого другого эффекта. Значение выражения вместо C
не используется. Таким образом, этот код не влияет на вашу программу.
Не ясно, что вы намеревались написать. Я предлагаю вам писать письменно, используя только операторы if
и, возможно, сначала оператор do
или while
вместо оператора for
. Если программа работает с этими операторами, вы можете попробовать преобразовать оператор do
или while
в оператор for
.