Operator arytm. z przypisaniem

0

Dlaczego wyświetlane s ma różne wartości, skoro s+=a+b+c można zapisać jako: s=s+(a+b+c)?

s=s+(a+b+c);
System.out.println("s:"+s);
s+=a+b+c;
System.out.println("s:"+s);

Wynik:
s: 1236
s: 12366

0

Wrzuć cały kod.
pozdrawiam

0

public class Konkatenacja {
public static void main(String args[]){
String s=" ";
int a=1, b=2, c=3;
s=s+a+b+c;
System.out.println("s:"+s);
s=s+(a+b+c);
System.out.println("s:"+s);
s+=a+b+c;
System.out.println("s:"+s);
}
}

0

Nie zerujesz zmiennej s

0
public class Konkatenacja {
  public static void main(String args[]){
     String s=" ";
     int a=1, b=2, c=3;
     s=s+a+b+c; //operator + jest wykonywany od lewej: s+a="1", s+a+b="12",s+a+b+c="123"
     System.out.println("s:"+s);
     s=s+(a+b+c); // nawiasy zmieniły kolejność działania operatora  +: (a+b+c)=6 s+(a+b+c)="1236" 
     System.out.println("s:"+s);
     s+=a+b+c; // wpierw wykonuje się prawa strona 1+2+3=6  potem konkatenacja, więc s="12366" 
     System.out.println("s:"+s);
  }
} 
/code>
"suma = "+3+5 != ("suma = "+3) + 5
pozdrawiam
0

Dziękuję
Pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1