2.Java之算术运算符(double运算注意点,%-取模细讲,i++和++i的区别细讲)

2.1.double运算注意点
System.out.println(10 / 4);

java输出是2,即默认结果是int类型

System.out.println(10.0 / 4);

java输出是2.5,即默认结果为double类型

所以在给double赋值时,要尤为注意:

double d = 10 / 4;
//输出结果为 10 / 4 = 2,2 => 2.0
/*正确写法*/
double d = 10.0 / 4;
2.2.%-取模详讲

%的本质是:

a % b = a - a / b * b

10 % 3 = 1
-10 % 3 = -1

-10 % 3 = (-10) - (-10) / 3 * 3 =(-10) - (-9) = -1

10 % -3 = 1

10 % -3 = (10) - 10 / (-3) * (-3) = 10 - 9 = 1

-10 % -3 = -1

(-10) % (-3) = (-10) - (-10) / (-3) * (-3) = -10 + 9 = -1

口诀:左负双负取负号

2.3.i++和++i的区别
  • 自增++作为独立的语句使用:

i++; 或者 ++i;

前++和后++都完全等价于 i = i + 1;

  • 作为表达式使用:

前++:先运算后赋值

a = 2;
b = ++a;
/*
输出结果为:
a = 3;
b = 3;
*/

后++:先赋值后运算

a = 2;
b = a++;
输出结果为:
/*
输出结果为:
a = 3;
b = 2;
*/
  • 深度探索:

int i = 1; i = i++; 结果多少?

其实在赋值时引用了临时变量,步骤为:

  1. temp = i;
  2. i = i + 1;
  3. i = temp;

所以结果为 1

int i = 1; i = ++i; 结果多少?

步骤为:

  1. i = i + 1;
  2. temp = i;
  3. i = temp;

所以结果为 2

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
通过运算符重载使得复数加减法运算可行,可以得出以下结论: 1. 复数加减法运算可以通过对实部和虚部分别进行加减法运算来实现,即 `(a + bi) + (c + di) = (a + c) + (b + d)i` 和 `(a + bi) - (c + di) = (a - c) + (b - d)i`。 2. 运算符重载使得我们可以直接使用 `+` 和 `-` 运算符对复数进行加减法运算,使得对复数的运算可以像对整数或浮数一样方便地进行。 3. 在运算符重载的实现过程中,需要注意实现加减法运算时需要返回一个新的复数对象,而不是修改原有的复数对象,以保证运算符重载的正确性。 例如,我们可以使用运算符重载实现复数的加减法,如下所示: ```c++ class Complex { public: Complex(double real = 0.0, double imag = 0.0) : m_real(real), m_imag(imag) {} Complex operator+(const Complex& other) const { return Complex(m_real + other.m_real, m_imag + other.m_imag); } Complex operator-(const Complex& other) const { return Complex(m_real - other.m_real, m_imag - other.m_imag); } private: double m_real; double m_imag; }; ``` 通过上述运算符重载,我们可以直接使用 `+` 和 `-` 运算符对复数进行加减法运算,例如: ```c++ Complex a(1, 2); // 创建一个实部为1,虚部为2的复数 Complex b(3, 4); // 创建一个实部为3,虚部为4的复数 Complex c = a + b; // 复数加法 Complex d = a - b; // 复数减法 ``` 因此,通过运算符重载,我们可以方便地对复数进行加减法运算,从而得出正确的结果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值