このように一旦変数に入れておくだけで問題ありません。 WHILE 1  K$=INKEY$()  ?VAL(K$)  VSYNC WEND 変数に入れるのが面倒ならば下記のようにしてもOKです。 WHILE 1  ?VAL(INKEY$()+".")  VSYNC WEND これは何も押してない時はVAL(".")の値を求める(0を返す)ため問題ないということです。 「1」を押した場合もVAL("1.")の値となり、これは1を返すため問題ありません。 ちなみにINKEY$()の後に付けるのが"."以外の文字だと常に0を返すため正しく動作しません。