;只支持从左到右四则运算(不支持先乘除再加减),不支持括号 ;乘号="*",除号="/" 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)