一、表达式求值简单说明:
1、求值表达式主要包括加减乘除四种基本运算,其实表达式可以看做由一个个二元运算构成,前一个二元运算的结果作为后一个二元运算的输入。
举个例子: “1+2-4=”,“1+2”就是一个二元运算,1和2是操作数,+是运算符,它们的运算结果3作为下一个二元运算的输入,所以下一个二元运算是“3-4”,这样经过两次二元运算后得出结果-1,此时碰到表达式结束符号“=”,那么表达式运算结束,最终值为-1。当然有时候表达式不是以等号作为结束符号的,这种场景要特别注意下。
2、加减乘除四种运算符是有优先级的,乘法和除法同级,且比加法和减法优先级高,也就是说同级的运算顺序是从左到右,高优先级的二元运算优先执行。
举个例子:“1+2
3=”,“2
3”这个二元运算因为乘法的优先级高,所以优先执行,执行结果作为+二元运算的第二个操作数。
3、括号运算其实相当于嵌套一个子表达式,而子表达式的优先级比括号外的加减乘数二元运算高,子表达式的计算结果作为主表达式的一个操作数。
4、由上面的说明可知,表达式有两个基本元素,那就是操作数和运算符,运算符一般占用一个字符,而操作数可能是1, 2, 3这样的个位整数,也可能是1.0, 1.89这样的浮点数,也可能是100, 189这样的多位整数。所以我们在从表达式解析出操作数时要完整的解析出整个操作数。
5、表达式一般以等号作为表达式结束标记,当然有不以等号作为结束标记的场景,详情看下面代码处理逻辑。
作者:瞬身疾风
来源:CSDN
原文:https://blog.csdn.net/moon_1991/article/details/80947858
版权声明:本文为博主原创文章,转载请附上博文链接!