Самая очевидная проблема заключается в том, что вы не сверяете с верхним пределом 5. Кроме того, неясно, что вы хотите, чтобы он делал, а что нет. Будьте конкретны - какой вызов вы делаете для этого кода, какие результаты вы получаете, и какие результаты вы ожидаете получить?
Из вашей "спецификации" неясно, что вы хотите делать с процентом бонуса после его установки. Один из вариантов, описанный Starkey, - увеличить почасовую ставку, чтобы включить бонус. Это не кажется мне разумным в реальной системе, но, возможно, это то, что вы должны делать (я предполагаю, что это домашняя работа).
Я ожидаю, что в более реальной реализации будет шаг расчета общей заработной платы за некоторый период времени, который умножит часы на почасовую ставку, а затем увеличит общую сумму на процент бонуса. Но опять же, из вашей спецификации не ясно, что вы хотите сделать.