Jak zastąpić drabinkę ifów?

0

Piszę prosty kalkulator z GUI i zastanawiam się jak zastąpić wszystkie ify. Myślicie, że instrukcja switch będzie bardziej efektywna?

0

Najpierw pokaż ten kod - łatwiej będzie coś podpowiedzieć.

0

W zasadzie to nie ma co za bardzo pokazywać, pytam wybiegając w przyszłość. Dzisiaj zacząłem poznawać świat GUI. Na ten moment mam okienko z potęgowaniem. http://pastebin.com/gbeBcjDh
Jeśli dojdą do tego inne działania to przy nasluchiwaniu źródła dojdzie sporo innych ifów.

2

Ja tam drabinki nie widzę, natomiast ten kod:

if(!odwroc.isSelected()) {
    wynikLiczb = (long) Math.pow(liczba1, liczba2);
    wynik.setText(liczba1 + " do potegi " + liczba2 + " jest rowne: " + wynikLiczb);
}
else if(odwroc.isSelected()){
    wynikLiczb = (int) Math.pow(liczba2, liczba1);
    wynik.setText(liczba2 + " do potegi " + liczba1 + " jest rowne: " + wynikLiczb);
}

nie musi posiadać po else drugiego if, bo stan jest już znany:

if(odwroc.isSelected()) {
    wynikLiczb = (int) Math.pow(liczba2, liczba1);
    wynik.setText(liczba2 + " do potegi " + liczba1 + " jest rowne: " + wynikLiczb);
}
else {
    wynikLiczb = (long) Math.pow(liczba1, liczba2);
    wynik.setText(liczba1 + " do potegi " + liczba2 + " jest rowne: " + wynikLiczb);
}

Jeśli możesz zastąpić warunek if(source == poteguj) instrukcją wyboru to to zrób, bo przy dodaniu kolejnych operacji wyjdzie drabinka; A samą opcję odwróć możesz zaimplementować bez dodatkowego warunku - po prostu zrób swapa na liczba1 i liczba2.

2

Ja napisałbym to inaczej, bo nie ma nic gorszego niż powielona logika:

if(odwroc.isSelected()) {
    long tmp=liczba2; 
    liczba2=liczba1;
    liczba1=tmp;
}
wynikLiczb = (long) Math.pow(liczba1, liczba2);
wynik.setText(liczba1 + " do potegi " + liczba2 + " jest rowne: " + wynikLiczb);

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