Zmiana wartości intów

0

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);
0

Potraktuj te 2 liczby jak długości odcinków.

0

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.

0
        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.

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