Ethernet Shield using Alarms for Garduino

Excuse my lack of knowledge but you first created a new int called watered. Then inserted the watered boolean as false.
Why is it necessary?

Code:
int waterHour = 5;
int waternMin = 0;
int waterSec = 0;
bool watered = false;

void loop()
{
   if(hour() == waterHour && minute() == waterMinute && second() == WaterSecond && !watered)
   {
       Water();
       watered = true;
   }
   else
       watered = false;
}