Если правильно понимаю, исходя из условия для первого цикла, цикл начинает работу, далее по порядку начинает работать второй цикл условия соблюдаются и он выводит 8, после чего увеличивает число b на 1 и заканчивает работу, так как условие не соблюдается. Далее первый цикл ставит знак со следующей строки, увеличивает на 1 число a и начинает с начала проверять условие, потом условие верно, по порядку цикл 2, условие верно, в нашем случае должно быть b=1, b<a(которая равна 2), и цикл должен работать 1 раз. Почему он работает не так, ведь первый цикл не обнуляет значение -а-, а сохраняет его, а второй обнуляет значение -b-.