ひとりでんたく。- Visual Basic で電卓つく~る。その3 -←前回。
前回のあらすじ。
今回はもうやめておきなさい。
前回は1+2=3 な感じを作りかけました。(←こっちがあらすじ。)
なので今回は、
1+2=3 な感じをつく~る!(ついでに -, ×, ÷ もいっとけー!)のつづきー!
- 1 を入力 → 表示は 1 に。
- + を入力 → 表示は変化なし。
- 2 を入力 → 表示は 2 に。
- = を入力 → 表示は 3 に。
ふぅむ・・・ ⅱのときにⅰの 1 と、+ を覚えておいて、ⅲでの 2 を新しく入力できる状態にしておいて、ⅳで 覚えておいた ⅰの値と、ⅲでの値をⅱの演算子で計算して、結果を表示すればよい・・・のかな?(自分で書いててナゾだ・・・。orz)
コレのⅳの部分ですね。'計算結果を表示しておしまい'、な感じですか?'計算結果を表示して'の部分を作りましょ~。前回、覚えておいたモノは以下のフィールドに格納してあります。
Private _memo As Decimal
Private _operation As Calculator.ArithmeticOperation
あとは今の入力との計算ですね。
Private Sub Calculate()
Dim current As Decimal = Decimal.Parse(Me.DisplayText)
Dim calcResult As Decimal
Select Case Me._operation
Case ArithmeticOperation.Addition
calcResult = Decimal.Add(Me._memo, current)
Case ArithmeticOperation.Subtraction
calcResult = Decimal.Subtract(Me._memo, current)
Case ArithmeticOperation.Multiplication
calcResult = Decimal.Multiply(Me._memo, current)
Case ArithmeticOperation.Division
calcResult = Decimal.Divide(Me._memo, current)
Case Else
Exit Sub
End Select
Me.DisplayText = calcResult.ToString
End Sub
ふ~、できました。今日は今のところいい天気ですね♪少し気持ちも軽くなります。
で、これと 'おしまい'の部分を処理するメソッドが ⅳですね。'おしまい' の部分って何だろう・・・?あ、覚えていたモノはもう用済みですね。
ポイッチョしときましょう。
ポイッチョするよなよなよなコードがこんな感じ?
Public Sub EndCalculation()
Me.Calculate()
Me._memo = Decimal.Zero
Me._operation = ArithmeticOperation.None
Me._nextInputIsNew = True
End Sub
というわけで、今回はここまで。こなくそー!!
電卓って意外と手間かかるのは、しょーがないというかなんというか・・・