Does halving ever end? Every certain number of blocks the reward is cut in half, for example from 50 to 25 BTC.  Will this halving continue indefinitely, so the reward never gets to zero?
It will, one day, reach 0, which mean mining wont be possible anymore (or it wont just be worth it). and by 0, I mean it could be 0.000001.

But if you look at it in a mathematical way, it should never end. Try that with a calculator, the number becomes really small.

The Bitcoin network is made so there will be a limited number of coins available and they have to be generated at a predictable rate, thats also why there is a difficulty on the mining