9

以下代码示例打印1.5.

float a = 3;
float b = 2;
a /= b;
System.out.println(a);

我不明白/=运营商是做什么的。它应该代表什么?

4

7 回答 7

16

它是一个组合除法加赋值运算符。

a /= b;

表示除以a并将b结果放入a.

加法、减法和乘法也有类似的运算符+=-=*=

%=会做模数。

>>=并将<<=进行位移。

于 2012-12-04T03:58:56.837 回答
4

它是 的缩写x = x / y (x /= y)。它所做的是将要分配的变量除以它的左侧并将其存储在右侧。您可以随时更改:

x = x / y

x /= y

您可以使用大多数其他运算符(例如* / +and )来执行此操作-。不过,我不确定按位运算符。

于 2012-12-04T04:02:13.643 回答
1

A/=B 与 A=(A/B) 的含义相同

Java(从 C 复制)有一整套运算符 X op = Y意味着X=X op Y,因为op是: + - * / % & | ^

于 2012-12-04T03:58:36.170 回答
1

a/=b; 意味着将ab相除并将结果放入a

于 2012-12-04T04:00:34.347 回答
1

X/=Y它是一样的X=X/Y
您也可以为这些运算符尝试相同的操作+ - * %

于 2012-12-04T04:02:36.923 回答
0

正如这里的大多数人已经说过的那样,x/=y它被用作其他运算符的缩写形式, x=x\y并且对于其他运算符(例如+=, -=, *=, %=. x+++ 和 - where和x--代表x=x+1x=x-1分别还有更多的快捷方式。

没有提到的一件事是,如果在某些函数调用或条件测试中使用它,则使用原始值然后替换,让您在使用该迭代器的调用中执行一个 while 循环的迭代器,或者编写一个 true更简洁地使用余数运算符的 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;
}
于 2020-01-28T17:29:18.283 回答
-2

你可以说a = a / b OR(简称)说 a /= b

于 2021-04-07T17:54:31.840 回答