Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Java - Použití parametru metody jako matematického znaku

Dobrý den,

Vytvořil jsem tenhle příklad

public class MathematicalOperatorInParameter {

    public static void main(String[] args) {
        System.out.println(addition_or_subtraction(100, 50, true));
        System.out.println(addition_or_subtraction(100, 50, false));
    }

    public static int addition_or_subtraction(int number, int number2, boolean addition) {
        if (addition) {
            return number + number2;
        } else {
            return number - number2;
        }

    }
}

Jde o to, že mně přijde zbytečné používat podmínku jenom kvůli operátoru. V tomhle případě to asi nevadí, ale pokud bude výpočet čísel mnohem složitější, tak bude nepřehledné to tam psát dvakrát.

Proto se chci, prosím Vás, zeptat, jestli je možné použít parametr jako operátor?

Děkuji

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Omlouvám se, zapomněl jsem to uzavřít. Jak už bylo víceméně řečeno, rozlišit sčítání a odčítání lze…
MichalDM 22.04.2021 20:11
MichalDM
Pořád jsem nepochopil, k čemu je to dobré a v čem je to lepší než prosté sčítání či odečítání.
Wikan 22.04.2021 20:14
Wikan
Prostě, přijde mně zbytečné, abych vyhodnocoval podmínku jenom kvůli použití správné operace.
MichalDM 22.04.2021 20:28
MichalDM
Tak radši použiješ pomalejší, hůře čitelný a na chyby velmi náchylný způsob. No máš velice zvláštní…
Wikan 22.04.2021 20:32
Wikan
Myslel jsem, že největší zlo jsou podmínky. (Teda tak jsem to četl long time ago). A o kolik složitě…
MichalDM 22.04.2021 20:55
MichalDM
Mám dojem, že jsi před časem říkal to samé o cyklech. Že je to zlo, a že by ses jim měl vyhýbat. To…
Wikan 22.04.2021 21:53
Wikan
Nejde mně o výhodu, ale o lepší zápis. A cyklus není nic jiného než hromada podmínek.
MichalDM 22.04.2021 23:24
MichalDM
Jenze tim, "lepsim" zapisem sis akorat sprasil API. To uz jsi mel pouzit radeji zapis od Losa... Ja…
MaSo 23.04.2021 06:30
MaSo
Pravděpodobně je zápis s IntBinaryOperator lepší, protože je z toho jasné, k čemu slouží. A nedělám… poslední
MichalDM 23.04.2021 16:14
MichalDM

Omlouvám se, zapomněl jsem to uzavřít. Jak už bylo víceméně řečeno, rozlišit sčítání a odčítání lze jednoduše pomocí násobení parametrem +1 nebo - 1

public class MathematicalOperatorInParameter {

    public static void main(String[] args) {
        System.out.println(addition_or_subtraction(100, 50, 1));
        System.out.println(addition_or_subtraction(100, 50, -1));
    }

    public static int addition_or_subtraction(int number, int number2, int operation) {
        return number + (operation * number2);
    }
}

I přesto děkuji.

Jenze tim, "lepsim" zapisem sis akorat sprasil API. To uz jsi mel pouzit radeji zapis od Losa...

Jak bude tvuj lepsi zapis fungovat, kdyz ho nekdo zavola s parmetrem operation -2, 200000000 nebo treba 0? Bude to delat to, co je v nazvu metody?

Jen doufam, ze nedelas komercni veci na kterych pracuje vice vyvojaru, protoze vytvaris solidni paskvily (napr. ty vecne podtrzitka v nazvech metod)...:-)

Zpět do poradny Odpovědět na původní otázku Nahoru