操作符的属性

C语言的操作符有2个重要的属性:优先级、结合性,这两个属性决定了表达式求值的计算顺序。

一、优先性

优先级指的是,如果一个表达式包含多个运算符,哪个运算符应该优先执行,各种运算符的优先级是不一样的。例如:

3+4*5

表达式3+4*5里面既有加法运算符(+),又有乘法运算符(*)。由于乘法的优先级高于加法,所以先计算4*5,而不是先计算3+4。

二、结合性

如果两个运算符的优先级相同,就没办法确定先计算哪一个了,这时就要看结合性,根据运算符是左结合,还是右结合,决定执行顺序。例如:

5*6/2

*和/的优先级相同,它们都是左结合运算符,所以从左到右执行。

运算符的优先级顺序很多,下面是部分运算符的优先级顺序(按照优先级从高到低排列)。

圆括号()

自增运算符++,自减运算符--

单目运算符(+和-)

乘法(*),除法(/)

加法(+),减法(-)

关系运算符(<、>等)

赋值运算符(=)

由于圆括号的优先级最高,可以使用它改变其它运算符的优先级。

  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
好的,我已经理解了您的要求。下面是我给您设计的计算器类Calculator的代码: ```python class Calculator: def __init__(self, num1, num2, option): self.__num1 = num1 self.__num2 = num2 self.__option = option if option not in ['+', '-', '*', '/']: print("操作符出错!") def get_num1(self): return self.__num1 def set_num1(self, num1): self.__num1 = num1 def get_num2(self): return self.__num2 def set_num2(self, num2): self.__num2 = num2 def get_option(self): return self.__option def set_option(self, option): if option not in ['+', '-', '*', '/']: print("操作符出错!") else: self.__option = option def calculate(self): if self.__option == '+': return self.__num1 + self.__num2 elif self.__option == '-': return self.__num1 - self.__num2 elif self.__option == '*': return self.__num1 * self.__num2 elif self.__option == '/': if self.__num2 == 0: print("除数不能为0!") else: return self.__num1 / self.__num2 ``` 在上面的代码中,我使用了私有属性和封装的思想,对外提供了共有的getter和setter方法,其中set_option()方法中进行了操作符的合法性检测。还定义了calculate()方法,用于执行加减乘除运算,并返回计算结果。 下面是一个样例程序,用于测试Calculator类的功能: ```python c = Calculator(10, 5, '+') # 创建Calculator的实例对象 print(c.calculate()) # 输出15 c.set_num1(20) # 修改num1的值 c.set_option('-') # 修改option的值 c.set_num2(8) # 修改num2的值 print(c.calculate()) # 输出12 ``` 在上面的代码中,首先创建了一个Calculator的实例对象,并为num1和num2赋值,同时指定了操作符为+。然后调用calculate()方法获取执行结果并输出。接着,通过setter方法修改了num1、num2和option的值,并再次调用calculate()方法获取执行结果并输出。 希望这个计算器类能够满足您的需求,如果有任何疑问,请随时提出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值