n00b needs help

Hi guys. can anyone tell me what these statements are telling me?

if (!fit)
{
    _root.pc.p1.gotoAndStop("empty");
    fit = 1;
    trace ("1");
}
else
{
    _root.pc.p1.gotoAndStop(_root.link);
} // end if
stop ();

And

if (!fit1)
{
    _root.pc.p1.gotoAndStop("empty");
    fit1 = 1;
    trace ("1");
} // end if
p1.gotoAndStop(_root.prev);
p2.gotoAndStop(_root.link);

The part which is puzzling me is the (!fit1) statement and the fit1 = 1;
trace (“1”); statements. Am i correct in that (!fit1) means ‘not equal to’? Can anyone plz help? TIA

!fit means if not fit (so if its undefined or = to false)

then when you do fit = 1 its now defined so

!fit evaluates true and sets fit next pass ! fit will evaluate false