Podstawowe operatory logiczne AndAlso i OrElse VB.NET

Wyrażenie if generuje błąd „dziel przez zero” w VB 6, ponieważ wartość 3 wynosi zero. (Ale patrz Szybka wskazówka na temat dzielenia przez zero więcej na ten temat.) Może się zdarzyć, że przypadki, w których wartość 3 będzie zerowa, są bardzo rzadkie i występują tylko wtedy, gdy spędzasz wakacje w odległości tysiąca mil, więc możesz zostać wezwany do naprawy programu w nagłych wypadkach tryb. (Hej! Zdarza się!)

Po zmianie And na AndAlso program działa! Powodem jest to, że ostatnia część złożonego warunku If - (wartość 2 \ wartość3) - nigdy nie jest wykonywana. Kiedy używasz AndAlso, VB.NET wie, że wyrażenie nie może się powieść, gdy zostanie ustalone, że pierwsza część warunku - a nie jest większa niż Wartość1 - jest fałszywa. Dlatego VB.NET przestaje analizować wyrażenie w tym miejscu. Podobny przykład można skonstruować za pomocą OrElse.

Ta analiza sugeruje również, w jaki sposób można zwiększyć wydajność kodu poprzez prawidłowe uporządkowanie złożonego wyrażenia logicznego. Jeśli podczas korzystania z AndAlso umieścisz wyrażenie, które najprawdopodobniej jest fałszywe, w skrajnej lewej pozycji, możesz zapobiec wykorzystywaniu cykli wykonywania do oceny najbardziej skrajnego prawego wyrażenia. W jednym teście nie zrobiłoby to wystarczającej różnicy, by warto było o tym myśleć. Ale jeśli twój test jest w jakiejś pętli i jest wykonywany zyliony razy, może to mieć dużą różnicę.

instagram viewer

instagram story viewer