;只支持从左到右四则运算(不支持先乘除再加减),不支持括号
;乘号="*",除号="/"
InputBox, c
while(j="")
{
a := []
加 := InStr(c, "+"), 减 := InStr(c, "-"), 乘 := InStr(c, "*"), 除 := InStr(c, "/")
if(加=0 and 减=0 and 乘=0 and 除=0)
break
if 加=0
加:=100
if 减=0
减:=100
if 乘=0
乘:=100
if 除=0
除:=100
switch
{
case 乘<减 and 乘<加 and 乘<除: a := StrSplit(c,"*",,2)
Gosub 取第二个值
if(A_Index=1)
结果 := a[1]*d[1]
else
结果 := 结果*d[1]
case 除<减 and 除<乘 and 除<加: a := StrSplit(c,"/",,2)
Gosub 取第二个值
if(A_Index=1)
结果 := a[1]/d[1]
else
结果 := 结果/d[1]
case 加<减 and 加<乘 and 加<除: a := StrSplit(c,"+",,2)
Gosub 取第二个值
if(A_Index=1)
结果 := a[1]+d[1]
else
结果 := 结果+d[1]
case 减<加 and 减<乘 and 减<除: a := StrSplit(c,"-",,2)
Gosub 取第二个值
if(A_Index=1)
结果 := a[1]-d[1]
else
结果 := 结果-d[1]
}
}
if(结果="")
MsgBox 错误
else
MsgBox % Format("{:g}", 结果)
ExitApp
取第二个值:
c := a[2], d := [], j := ""
加 := InStr(c, "+"), 减 := InStr(c, "-"), 乘 := InStr(c, "*"), 除 := InStr(c, "/")
if(加=0 and 减=0 and 乘=0 and 除=0)
{
d[1] := c, j := 1
return
}
if 加=0
加:=100
if 减=0
减:=100
if 乘=0
乘:=100
if 除=0
除:=100
switch
{
case 乘<减 and 乘<加 and 乘<除: d := StrSplit(c,"*",,2)
case 除<减 and 除<加 and 除<乘: d := StrSplit(c,"/",,2)
case 加<减 and 加<乘 and 加<除: d := StrSplit(c,"+",,2)
case 减<加 and 减<乘 and 减<除: d := StrSplit(c,"-",,2)
}
return
;只支持从左到右四则运算(不支持先乘除再加减),不支持括号
;乘号="*",除号="/"
InputBox, c
while(j="")
{
a := []
加 := InStr(c, "+"), 减 := InStr(c, "-"), 乘 := InStr(c, "*"), 除 := InStr(c, "/")
if(加=0 and 减=0 and 乘=0 and 除=0)
break
if 加=0
加:=100
if 减=0
减:=100
if 乘=0
乘:=100
if 除=0
除:=100
switch
{
case 乘<减 and 乘<加 and 乘<除: a := StrSplit(c,"*",,2)
Gosub 取第二个值
if(A_Index=1)
结果 := a[1]*d[1]
else
结果 := 结果*d[1]
case 除<减 and 除<乘 and 除<加: a := StrSplit(c,"/",,2)
Gosub 取第二个值
if(A_Index=1)
结果 := a[1]/d[1]
else
结果 := 结果/d[1]
case 加<减 and 加<乘 and 加<除: a := StrSplit(c,"+",,2)
Gosub 取第二个值
if(A_Index=1)
结果 := a[1]+d[1]
else
结果 := 结果+d[1]
case 减<加 and 减<乘 and 减<除: a := StrSplit(c,"-",,2)
Gosub 取第二个值
if(A_Index=1)
结果 := a[1]-d[1]
else
结果 := 结果-d[1]
}
}
if(结果="")
MsgBox 错误
else
MsgBox % Format("{:g}", 结果)
ExitApp
取第二个值:
c := a[2], d := [], j := ""
加 := InStr(c, "+"), 减 := InStr(c, "-"), 乘 := InStr(c, "*"), 除 := InStr(c, "/")
if(加=0 and 减=0 and 乘=0 and 除=0)
{
d[1] := c, j := 1
return
}
if 加=0
加:=100
if 减=0
减:=100
if 乘=0
乘:=100
if 除=0
除:=100
switch
{
case 乘<减 and 乘<加 and 乘<除: d := StrSplit(c,"*",,2)
case 除<减 and 除<加 and 除<乘: d := StrSplit(c,"/",,2)
case 加<减 and 加<乘 and 加<除: d := StrSplit(c,"+",,2)
case 减<加 and 减<乘 and 减<除: d := StrSplit(c,"-",,2)
}
return
;只支持从左到右四则运算(不支持先乘除再加减),不支持括号
;乘号="*",除号="/"
InputBox, c
while(j="")
{
a := []
加 := InStr(c, "+"), 减 := InStr(c, "-"), 乘 := InStr(c, "*"), 除 := InStr(c, "/")
if(加=0 and 减=0 and 乘=0 and 除=0)
break
if 加=0
加:=100
if 减=0
减:=100
if 乘=0
乘:=100
if 除=0
除:=100
switch
{
case 乘<减 and 乘<加 and 乘<除: a := StrSplit(c,"*",,2)
Gosub 取第二个值
if(A_Index=1)
结果 := a[1]*d[1]
else
结果 := 结果*d[1]
case 除<减 and 除<乘 and 除<加: a := StrSplit(c,"/",,2)
Gosub 取第二个值
if(A_Index=1)
结果 := a[1]/d[1]
else
结果 := 结果/d[1]
case 加<减 and 加<乘 and 加<除: a := StrSplit(c,"+",,2)
Gosub 取第二个值
if(A_Index=1)
结果 := a[1]+d[1]
else
结果 := 结果+d[1]
case 减<加 and 减<乘 and 减<除: a := StrSplit(c,"-",,2)
Gosub 取第二个值
if(A_Index=1)
结果 := a[1]-d[1]
else
结果 := 结果-d[1]
}
}
if(结果="")
MsgBox 错误
else
MsgBox % Format("{:g}", 结果)
ExitApp
取第二个值:
c := a[2], d := [], j := ""
加 := InStr(c, "+"), 减 := InStr(c, "-"), 乘 := InStr(c, "*"), 除 := InStr(c, "/")
if(加=0 and 减=0 and 乘=0 and 除=0)
{
d[1] := c, j := 1
return
}
if 加=0
加:=100
if 减=0
减:=100
if 乘=0
乘:=100
if 除=0
除:=100
switch
{
case 乘<减 and 乘<加 and 乘<除: d := StrSplit(c,"*",,2)
case 除<减 and 除<加 and 除<乘: d := StrSplit(c,"/",,2)
case 加<减 and 加<乘 and 加<除: d := StrSplit(c,"+",,2)
case 减<加 and 减<乘 and 减<除: d := StrSplit(c,"-",,2)
}
return
声明:站内资源为整理优化好的代码上传分享与学习研究,如果是开源代码基本都会标明出处,方便大家扩展学习路径。请不要恶意搬运,破坏站长辛苦整理维护的劳动成果。本站为爱好者分享站点,所有内容不作为商业行为。如若本站上传内容侵犯了原著者的合法权益,请联系我们进行删除下架。
评论(0)