Czy Objective-C ocenia każdą instrukcję na bloku if... else if...
lub czy ocenia każdą z nich, a następnie pomija pozostałe oceny, jeśli prawdziwy warunek został znaleziony?Ocena każdej instrukcji warunkowej na bloku if ... else if ...
Jest to bardziej pragmatyczne pytanie związane z wydajnością niż cokolwiek innego.
I tak, wiem, że treść samego bloku if nie jest wykonywana, ale mam na myśli faktyczne wyciągi, które zostaną ocenione.
Przykład
if ([condition A] == test) {
// Do something
} else if ([condition B] == test) {
// Do something
} else if ([condition C] == test) {
// Do something
} else {
// Do something because all other tests failed
}
Więc ... jeśli warunek A jest prawdziwe, czy warunki B i C ocenia się mimo to?
Jeśli tak, to czy za pomocą instrukcji przełącznika działa się w ten sam sposób, czy też przełącznik sprawdza tylko każdy stan, który do niego przychodzi, a następnie kończy testowanie z powodu przerwy?
Moje zrozumienie polega na tym, że na bloku if... else if...
każdy stan jest oceniany, a zatem użycie przełącznika lub zagnieżdżonego (jeśli nie - nie rozkoszuj się tamtą myślą) może być szybszy w przypadku dużych operacji oceny wielu danych (setki tysięcy elementów sprawdzanych pod kątem potencjalnie stu zdań).
Wystarczy ciekawy :-)
Lepsze pytanie brzmi: "Czy w C ...?" ponieważ podstawowa kontrola przepływu jest dziedziczona z C. Cel-C jest nadzbiorem C. –