Wat is de /= operator in Java?

Het volgende codevoorbeeld drukt 1.5af.

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

Ik begrijp niet wat de operator /=doet. Wat moet het voorstellen?


Antwoord 1, autoriteit 100%

Het is een combinatie van deling-plus-toewijzingsoperator.

a /= b;

betekent adelen door ben het resultaat in aplaatsen.

Er zijn vergelijkbare operatoren voor optellen, aftrekken en vermenigvuldigen: +=, -=en *=.

%=zal modulus doen.

>>=en <<=zullen bitverschuiving uitvoeren.


Antwoord 2, autoriteit 27%

Het is een afkorting voor x = x / y (x /= y). Wat het doet, is dat het de toe te wijzen variabele aan de linkerkant ervan verdeelt en aan de rechterkant opslaat. U kunt altijd wijzigen:

x = x / y

naar

x /= y

Je kunt dit doen met de meeste andere operators zoals * / +en -. Ik ben echter niet zeker van bitsgewijze operators.


Antwoord 3, autoriteit 7%

a/=b;houdt in dat awordt gedeeld door ben het resultaat wordt omgezet in a


Antwoord 4, autoriteit 7%

A/=B betekent hetzelfde als A=(A/B)

Java (kopiërend van C) heeft een hele reeks operatoren X op= Y, wat betekent X=X opY, waarbij opeen van de volgende is: + – * / % & | ^


Antwoord 5, autoriteit 7%

x/=yhet is hetzelfde als X=X/Y.
U kunt ook hetzelfde proberen voor deze operators + - * %


Antwoord 6

Zoals de meeste mensen hier al hebben gezegd, wordt x/=ygebruikt als een verkorte vorm van x=x\yen hetzelfde werkt voor andere operators zoals +=, -=, *=, %=. Er zijn nog meer sneltoetsen voor + en – waarbij x++en x--staan voor x=x+1en x=x-1respectievelijk.

Eén ding dat niet is vermeld, is dat als dit wordt gebruikt in een functieaanroep of voorwaardelijke test, de oorspronkelijke waarde wordt gebruikt en vervolgens wordt vervangen, zodat u de iterator een tijdje kunt herhalen in de aanroep die die iterator gebruikt, of schrijf een echte mod-functie met behulp van de rest-operator veel beknopter:

public int mod(int a, int b){
    return ((a%=b)>=0?a:a+b);
}

wat een veel kortere manier van schrijven is:

public int mod(int a, int b){
    a = a % b
    if (a>=0){
        return a;
    }
    return a+b;
}

Antwoord 7

Je zou kunnen zeggen a = a / bOF (kortweg) zeggena /= b

Other episodes