やってることは、DATA文からREADしてPRINTして………の繰り返しです。 DATA文に工夫がしてあって、空文字列が来たら終わりになってます。その判定が484行目のBREAKです。 判定がループの始めでも終わりでもなく途中にあるため、BREAKで抜けるのが一番自然です。 処理の順番を頑張って入れ換えればWHILEの条件式で抜けられると思いますが、流れの自然さを考えてこのような方法にしています。