Вы можете использовать любое выражение:
int n = 10;
while (n > 0) // Note change compared with original!
{
// Do something
n = round(n/3.0) - 1; // Note assignment and floating point
}
Обратите внимание, что вы можете уменьшать только переменные, а не выражения.
Вы также можете использовать цикл for
:
for (int n = 10; n > 0; n = round(n/3.0) - 1)
{
// Do something
}
В этом случае последовательность значений для n
будет одинаковой (n = 10, 2
) независимо от того, округляете ли вы с плавающей запятой или нет, поэтому вы можете написать:
n = n / 3 - 1;
и выувидел бы те же результаты.Для других верхних пределов последовательность изменится (n = 11, 3
).Оба метода хороши, но вы должны быть уверены, что знаете, чего хотите, вот и все.