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
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
Wrzuć cały kod.
pozdrawiam
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);
}
}
Nie zerujesz zmiennej s
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
Dziękuję
Pozdrawiam
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.