"Phantom" HIGH input on digitalRead pins

Fairly simple problem, I'm trying to make a "simple" (lol that didn't work out) timer, and the part that is tripping me up is, oddly enough, the bloody start button. Basically, the code should in theory just sit on "Start timer?" indefinitely if the button is not pressed (the code is in an if clause on that button etc) and there's no code based reason for it to start on its own, but it does?!

To figure out if this was my code my board I made a very simple program, it reads from pin 6, and if it's HIGH it Serial.prints TRUE, and if it's low it prints FALSE. I hooked up a button to the 5V rail, and plugged it into the pin. Looking at the serial monitor, it seems to oscillate between FALSE and TRUE, without pressing the button? There's categorically no volts getting to the pin, but it periodically reads HIGH? How is this happening? Have I fried my board somehow or what? Any help would be greatly appreciated.

The input pin is floating. The easy way to fix it is to set the internal pullup resistor on the pin and wire the pin through the switch to ground. In the setup() function:

  pinMode(6,INPUT_PULLUP);

Pete

You need to read this
http://www.thebox.myzen.co.uk/Tutorial/Inputs.html

Inputs sense a voltage, they do not define a voltage unless the internal pull-ups are
enabled. This is a property of all CMOS devices which have usually have input
impedances in the range 10^10 to 10^13 ohms, which is pretty much infinite for all
practical purposes.