Próbuję odświeżyć moją Javę, ponieważ minęło dużo czasu i zacząłem pracować nad rozgrzewką na CodingBat.com. (Uwaga spoilery mogą śledzić);)Wydajność przy sprawdzaniu wielu warunków za pomocą Javy
ja po prostu nie bardzo prosty jeden, który stwierdził:
podany 2 ints A i B, return true jeśli jeśli ich jest 10, lub jeśli ich suma jest 10.
makes10 (9, 10) → prawdziwego
makes10 (9, 9) → fałszywego
makes10 (1, 9) → prawda
My roztwór :
public boolean makes10(int a, int b)
{
if(a==10 || b==10)
return true;
else
{
if((a+b)==10)
return true;
else
return false;
}
}
Rozwiązanie podane było:
public boolean makes10(int a, int b) {
return (a == 10 || b == 10 || a+b == 10);
}
Moje pytanie brzmi: w przypadku, gdy a = 10 lub b = 10 będzie dana Solution if zakończyć i powrócić prawda czy będzie to pierwsza pełna kontrola każdy warunek, który wymagałby niepotrzebnej operacji dodawania? (tj. a + b)
Istnieje nazwa tego zachowania w C++, ale dla mojego życia nie pamiętam, co to jest.
Zobacz też: http://stackoverflow.com/questions/7101992/why-do-we-we-nie-nie-nie-nie-jest-dodatkiem-dodatkowym – assylias
To zachowanie nazywa się "Short Circuit". – resueman
Podczas gdy druga metoda jest bardziej wydajna, zastanów się, czy Twój kod jest funkcjonalnie identyczny :) – Deactivator2