Your code simply continually checks whether the button is pressed.
While it is pressed, it will keep printing oinks as fast as it can, because every time it loops, it is still pressed.
There's a tutorial for state change detection:
That may help.
[edit]Edit: Contact bounce may also be an issue. The contacts in the switch actually bounce and chatter for a short time, seeming like multiple presses. There is also a tutorial on debouncing, and a library, too.
http://arduino.cc/en/Tutorial/Debounce[/edit]