【发布时间】:2012-11-21 15:52:00
【问题描述】:
以下代码示例打印1.5。
float a = 3;
float b = 2;
a /= b;
System.out.println(a);
我不明白/= 运算符的作用。它应该代表什么?
【问题讨论】:
以下代码示例打印1.5。
float a = 3;
float b = 2;
a /= b;
System.out.println(a);
我不明白/= 运算符的作用。它应该代表什么?
【问题讨论】:
这是一个组合除法加赋值运算符。
a /= b;
表示将a除以b并将结果放入a。
有类似的加法、减法和乘法运算符:+=、-= 和 *=。
%= 会做模数。
>>= 和 <<= 将进行位移。
【讨论】:
它是x = x / y (x /= y) 的缩写。它所做的是将要分配的变量除以它的左侧并将其存储在右侧。你可以随时改变:
x = x / y
到
x /= y
您可以使用大多数其他运算符来执行此操作,例如 * / + 和 -。不过,我不确定按位运算符。
【讨论】:
a/=b; 意味着将 a 与 b 相除并将结果放入 a
【讨论】:
A/=B 与 A=(A/B) 含义相同
Java(从C复制)有一整套操作符X op = Y,意思是X=X op Y,对于 op 是以下任何一个:+ - * / % & | ^
【讨论】:
X/=Y 与X=X/Y 相同。
你也可以为这些操作员尝试同样的事情+ - * %
【讨论】:
正如这里的大多数人已经说过的,x/=y 用作x=x\y 的缩写形式,对于其他运算符如+=、-=、*=、%= 也是如此。 + 和 - 还有更多的快捷方式,其中 x++ 和 x-- 分别代表 x=x+1 和 x=x-1。
没有提到的一件事是,如果在某些函数调用或条件测试中使用它,则使用原始值然后替换,让您在使用该迭代器的调用中执行一个 while 循环的迭代器,或者更简洁地使用余数运算符编写一个真正的 mod 函数:
public int mod(int a, int b){
return ((a%=b)>=0?a:a+b);
}
这是一种更短的写作方式:
public int mod(int a, int b){
a = a % b
if (a>=0){
return a;
}
return a+b;
}
【讨论】:
你可以说a = a / b 或者(简称)说 a /= b
【讨论】: