Hamlet tells himself that he can't kill the King while he is praying. But the real reason is probably that Hamlet can never make up his mind. Coleridge said that Hamlet "thinks too much." Hamlet sees too many sides to any question. When he does act, it is always on impulse, before he has had a chance to think. For example, he acts very courageously and decisively when his ship bound for England is attacked by pirates. Coleridge's diagnosis of Hamlet's character is probably the best that has ever been attempted. The answer by rishakespeare at this link below gives another perspective on Hamlet's actions. See what he says about "a harsh reality of an immoral world with his idealistic Christian reality.
Please best my answer and add me as ur tutor for fast future help :)