文へ条件分岐され、それぞれの処理を行っています。キーコードは、バラバラですので、これらの判定には論理演算と比較演算を多用する必要がありました。プログラム冒頭にある初期設定の部分では、配列変数を使ってテンキーの番号とキーコードを関連づけています。1→Z[35]:2→Z[36]3→Z[37]:4→Z[21]5→Z[22]:6→Z[23]7→Z[31]:8→Z[32]9→Z[33]:0→Z[25]これは、得られたキーコードからテンキーの数字を導くために必要なものです。押されたテンキーの番号を与えます。ここでは多くの論理演算と比較演算を使っています。判定を行うと以下のようになり、論理演算と比較演算を大幅に減らすことができます。応答性改善の基本的なアイディアです。このアイディアに合わせて、いくつかの部分を修正しています。配列変数の扱い配列変数のアクセス(読み書き)には、20ミリ秒以上の時間がかかることが分かっています(上記の処理時間比較の実験による)。使用を1回に限定できます。I≦9配列変数については、以下を参照。用いるには理由があります。文の制御変数としてのみ使われています。文の動作には全く影響がありません。使い捨て変数として自由に使えることから、テンキーの数を代入しておく変数として使えます。他のプログラムから呼び出して使うサブルーチンです。自由に多くの変数を使ってしまうと、呼び出すメインルーチンで使える変数に制限がかかります。できるだけ少ない変数を使い回しておく必要があるわけです。以下のようにしています。20ミリ秒程度かかる配列変数を使わずに、10Z+I→Zと変更します。ループ全体での配列変数アクセスの回数が1回に抑えられます。配列変数による処理速度の違いはありません。大きな問題があります。キーが押された時だけではありません。