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.

0

Tu: http://pccode.pl/17-sposobow-[...]miennych-bez-uzycia-trzeciej/ jest 17 sposobów (niestety w pehapie).

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