Второе выражение в блоке управления for
l oop является условием для итерации, а не для прерывания из l oop. Таким образом, этот for
l oop ...
for(int k = 0; k == digs; k++)
... выполняет тело l oop, только если k
равно digs
, и это будет верно в первый раз, когда условие проверяется, только если digs
равно нулю, чего вы (разумно) не ожидаете. Кроме того, если бы k
также не было изменено внутри тела l oop, которого нет в вашем коде, тело никогда не будет выполнено более одного раза. По сути, это похоже на if (k == digs)
, и, конечно, тело l oop не выполняется ни разу.
Стандартная идиома для того, что вы пытаетесь сделать, использует выражение <
в условие:
for (int k = 0; k < digs; k++)