VBプログラマ質問スレ(6.0以前) Part43
■ このスレッドは過去ログ倉庫に格納されています
0196GetAnswer("1+2*3")
2005/08/26(金) 20:20:00Dim Ope As Variant, foo() As String, bThr As Boolean, bar As Long
Dim i As Long, j As Long
For Each Ope In Array("+", "-", "*", "/")
strQuestion = Replace(strQuestion, Ope, " " & Ope & " ")
Next Ope
foo = Split(strQuestion)
For i = 1 To UBound(foo)
If bThr Then
bThr = False
ElseIf foo(i) = "*" Then
foo(j) = foo(j) * foo(i + 1): bThr = True
ElseIf foo(i) = "/" Then
foo(j) = foo(j) / foo(i + 1): bThr = True
Else
j = j + 1: foo(j) = foo(i)
End If
Next i
bar = foo(0)
For i = 1 To j
Select Case foo(i)
Case "+": bar = bar + foo(i + 1)
Case "-": bar = bar - foo(i + 1)
End Select
Next i
GetAnswer = bar
End Function
この夏からVB始めたリアル厨房ですが、練習がてら文字列操作のみで算出してみました
勉強になるので批判も歓迎、やっぱ数値ではなく数字を演算する時って
Clngとかで数値に直してから演算した方がいいんですかね?
+以外は数字同士でも勝手に数値として演算してくれるみたいなんですが
■ このスレッドは過去ログ倉庫に格納されています