Ваша проблема - приоритет оператора. Оператор% имеет более высокий приоритет, чем оператор +, поэтому, если ваш num
, скажем, 10, ваш тест функционально:
10 + (0 % 7) == 0 => false (10)
10 + (1 % 7) == 0 => false (11)
10 + (2 % 7) == 0 => false (12)
и т.д.
Очевидно, что для любого num
> 0 вы никогда не будете удовлетворять условию. Измените ваш тест на (num+i)%7 == 0
, и вы увидите, что он работает как положено.