WHILE xxxは、「xxxの条件が「真(TRUE)」の間WENDまでの処理を繰り返す。」という命令です。28は、27で設定した値と異なるため「偽(FALSE)」となり、1度も実行されずに終わっているようです。よって、ねこはちさんのおっしゃるようにすると、うまくいくようになります。なお、あとの処理で、変数値を使わないのであれば、27-28を
REPEAT
34を
UNTIL BUTTON(2) AND 16
とする方法もあります。
UNTIL XXXは、「XXXが「真(TRUE)」になるまで、REPEATからの処理を繰り返す。」と言う命令です。注意する点は、WHILEが継続条件で、UNTILが脱出条件である点と、後者は、最低1回実行される点です。