=の計算での処理を考えていたところ、根本的問題として、数字キュー の初期値が0になっている点がありました。
数字キュー は、どのような状態にあっても0が表示されるとか、0のあとに0を入れさせないだとか、「.」をいれると「0.」とするとかの表示処理もあり、リセットしても0になります。
そのため、数字と演算子を入れて一旦リセットしても、リセットの事実は残ることはなく、「0」になってしまいます。
そのため、0+と、+のみとの区別がつかないという問題がありました。
もう0+を+のみと考えてもいいのですが、本当に0+としたいときに問題がでます。
一旦冷静になって考えましたが、
・数字の入力が少しでもあった場合のフラグ
numInputting
・演算子の入力があった場合のフラグ
calcInputting
・=があった場合のこれらのリセット
という形であれば、入力順での文法解釈などなしでいけるように思い始めました。
とりあえずその方向で実装していきましょう。
数字キュー は、どのような状態にあっても0が表示されるとか、0のあとに0を入れさせないだとか、「.」をいれると「0.」とするとかの表示処理もあり、リセットしても0になります。
そのため、数字と演算子を入れて一旦リセットしても、リセットの事実は残ることはなく、「0」になってしまいます。
そのため、0+と、+のみとの区別がつかないという問題がありました。
もう0+を+のみと考えてもいいのですが、本当に0+としたいときに問題がでます。
一旦冷静になって考えましたが、
・数字の入力が少しでもあった場合のフラグ
numInputting
・演算子の入力があった場合のフラグ
calcInputting
・=があった場合のこれらのリセット
という形であれば、入力順での文法解釈などなしでいけるように思い始めました。
とりあえずその方向で実装していきましょう。
0 件のコメント:
コメントを投稿