Вы использовали «или» в своем псевдокоде, но вы действительно хотите l oop, пока blank
меньше n
и , тогда как blank
больше 0
. &&
является логическим оператором и, поэтому вы можете использовать следующее:
for (int blank = n-2; blank < n && blank > 0; blank -= 1)
Но blank < n
всегда верно, поэтому вы можете просто использовать следующее:
for (int blank = n-2; blank > 0; blank -= 1)
Обратите внимание, что i -= 1
можно записать --i
для целочисленных типов.
for (int blank = n-2; blank > 0; --blank) # blank goes from n-2 to 1
Это даст тот же результат:
for (int blank = n-2; blank-- > 0; ) # blank goes from n-3 to 0
Если гарантировано n
чтобы быть как минимум 2
, вы также можете использовать общую идиому:
for (int blank = n-2; blank--; ) # blank goes from n-3 to 0 if n>=2