Zmiana wartości intów

Zmiana wartości intów
kllewy
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5
0

Krótka rzecz. Dwa inty chcę zamienić miejscami. Podobno da się to zrobić bez zmiennej pomocniczej. Proszę o podpowiedź.

Kopiuj
int a = 4, b = 8;
int c;
System.out.println(a + " " + b);
c = a;
a = b;
b = c;
System.out.println(a + " " + b);
AK
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 82
0

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

Gjorni
  • Rejestracja: dni
  • Ostatnio: dni
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:

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

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
KA
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 1683
0
Kopiuj
        int a = 20;
        int b = 45;

        // swap
        a = a + b;
        b = a - b;
        a = a - b;

vs

Kopiuj
        int a = 20;
        int b = 45;

        int tmp = a;
        a = b;
        b = tmp;

ja wolę 2 rozwiązanie, bo czytelniejsze.

bogdans
  • Rejestracja: dni
  • Ostatnio: dni

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.