@ラベルは内部的には文字列扱いなので while @a は while "@a" とほぼ同じ で while 式 は内部的には while 式!=0 なので while "@a"!=0 となって、? "@a"!=0 するとわかるけど、プチコンでは文字列と数値の比較はなぜか 3 を返す謎仕様なので while "@a"!=0 は while 3 となり、結局無限ループになります。