質問: 今、電卓のプログラムを作ろうと思っています。(現在、フローチャートを書いています。) 値は、 数字 → 演算子 → 数 → の順番で1文字ずつキーボードから受け取ります。 この時、whileループの中でif文をつくり一文字ずつ値を受け取っていこうと思っています。 それで、"ce"この文字が入力されたら、ceの文字の前に入力された文字を消すという作業をします。 もし、ceが3回押されたら、3つ前に入力した文字の状態まで戻らなければなりません。 この削除の方法をずっと調べたり、考えたりしているのですが、一向に進みません。 どうすすればいいのかなどを どうか教えていただけないでしょうか?
回答: ceを検出したときは、前の文字に戻るのではなく、1つ前の計算結果(処理を実施する)に戻る、が電卓の動きになるでしょうか。 数字が入力されていれば、演算はせず数値の入力中で、 入力した値で 特定の文字`+-*/=ce`などが入力されたらそれに対応する処理を実施する、の流れになるでしょう。このタイミングで計算結果を何らかの配列に保持しておけばよいでしょう。小数点も含めるならBigDecimal型が良いのかもしれません。