Instrukcja If-Then-Else w kodzie Delphi

Początkujący programiści Delphi powinni uważać na pułapki „jeśli-to-inaczej”

Pełnoklatkowe ujęcie kodów programów na ekranie

Getty Images/Degui Adil/EyeEm





W Delfy , instrukcja if służy do testowania a stan a następnie wykonaj sekcje kodu w zależności od tego, czy ten warunek ma wartość Prawda czy Fałsz.

Ogólna instrukcja if-then-else wygląda tak:



|_+_||_+_|

Zarówno „prawdziwy blok”, jak i „fałszywy blok” mogą być prostą instrukcją lub instrukcją ustrukturyzowaną (otoczoną parą początek-koniec).

Przykład zagnieżdżonej instrukcji If-Then-Else

Rozważmy jeden przykład z użyciem zagnieżdżonych instrukcji if:



|_+_||_+_|

Jaka będzie wartość „Kation”? Odpowiedź: „Liczba jest UJEMNA!” Nie spodziewałeś się tego?

Zauważ, że kompilator nie uwzględnia Twojego formatowania, mogłeś napisać powyższe jako:

|_+_||_+_|

lub nawet jako (wszystko w jednej linii):

|_+_||_+_|

Znak ';' oznacza koniec oświadczenia.



Kompilator odczyta powyższe oświadczenie jako:

|_+_||_+_|

a dokładniej:



|_+_||_+_|

Nasze oświadczenie ELSE będzie interpretowane jako część „wewnętrznej” instrukcji IF. Instrukcja 'inner' jest instrukcją zamkniętą i nie wymaga BEGIN..ELSE.

Jak naprawić

Aby upewnić się, że wiesz, jak zagnieżdżone instrukcje if są traktowane przez kompilator, i naprawić powyższy „problem”, możesz napisać początkową wersję jako:



|_+_||_+_|

Uch! Brzydkie „inne” kończy zagnieżdżoną linię jeśli!? Kompiluje się, działa!

Najlepszym rozwiązaniem jest: zawsze używaj par początek-koniec z zagnieżdżonymi instrukcjami if:



|_+_||_+_|

Za dużo par początek-koniec? Lepiej dmuchać na zimne. W każdym razie szablony kodu są zaprojektowane tak, aby dodawać do kodu źródłowego powszechnie używane struktury szkieletowe, a następnie je wypełniać.

Artykuł przedstawiony przez Marcusa Junglas