I suggest doing the number comparison, so hasfired=+1 when fired 1 bullet, and when the bullet is destroyed it sets hasfired=-1 so it's zero.
This way you can setup multiple places where the bullet can be destroyed (on enemy hit) and speed up your firing like Megaman (megaman limited you to 3 bullets on screen, but if you were right next to an enemy or the screen edge you could spam bullets. A valuable mechanic for that game)
If you want a specific delay on the firing rather than if the bullet is onscreen, you can do a timer system in which you can only fire every so often.