Flooding happens when the switch does not have the destination MAC address of the frame in its CAM table and so it doesn't know which port to send it out to, so it 'floods' the frame to all the switchports except the one it entered in on.
Forwarding is when the switch does know which port a particular MAC address is connected to so it 'forwards' the frame only to that port.
Broadcasting may seem the same as flooding but its not.. in a broadcast, the sending host wants all hosts on the segment to see the frame, the destination mac address is FF-FF-FF-FF-FF-FF in hexadecimal which translates to all 'ones' in binary. This means 'send this frame to everybody'. The switch thus sends it out of every port. Flooding happens because it didn't know where to send it.
Btw after flooding the frame once, if the switch gets a response from the destination host, it will add that host and its port to its table.. thus it has 'learned' where that host is and never needs to flood to find it again -- it will now forward frames there.
(Btw frames are just packets encapsulated at the data link layer (layer 2) where switches operate)
Hope that helps.
You might want to read the material under Networking >> Connectivity >> Switches and Bridges menu at the top of the page.