Krótka rzecz. Dwa inty chcę zamienić miejscami. Podobno da się to zrobić bez zmiennej pomocniczej. Proszę o podpowiedź.
int a = 4, b = 8;
int c;
System.out.println(a + " " + b);
c = a;
a = b;
b = c;
System.out.println(a + " " + b);
Wykorzystaj metodę przyjmującą dwa parametry zwracającą argument podany do pierwszego z jej parametrów, a zamiany wartości dokonuj w linijce wywołującej tą metodę w jej nawiasach.
EDIT
Przykład:
public class SwapTwoVariables {
public static void main(String[] args) {
int a = 7, b = 1;
a = returnFirst(b, b = a);
System.out.println("a: " + a + ", b: " + b);
}
public static int returnFirst(int x, int y) {
return x;
}
}
A działa to, bo Java gwarantuje przetwarzanie argumentów od lewej do prawej. Jednak należy podkreślić, że po przesłaniu zmiennej b
do pierwszego parametru jej wartość zostaje na chwilę "zawieszona", przez co faktycznie wykorzystywane są trzy zmienne.
int a = 20;
int b = 45;
// swap
a = a + b;
b = a - b;
a = a - b;
vs
int a = 20;
int b = 45;
int tmp = a;
a = b;
b = tmp;
ja wolę 2 rozwiązanie, bo czytelniejsze.
Tu: http://pccode.pl/17-sposobow-na-zamiane-wartosci-w-dwoch-zmiennych-bez-uzycia-trzeciej/ jest 17 sposobów (niestety w pehapie).
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.
Shalom