De If-Then-Else-verklaring in Delphi Code

De If-Then-Else-verklaring in Delphi Code

In Delphi wordt de instructie if gebruikt om te testen op een voorwaarde en vervolgens secties code uit te voeren op basis van de vraag of die voorwaarde Waar of Onwaar is.

Een algemene if-then-else-instructie ziet er als volgt uit:

als vervolgens anders ;

Zowel het "ware blok" als het "valse blok" kunnen een eenvoudige of gestructureerde verklaring zijn (omgeven met een begin-eind paar).

Voorbeeld van een geneste if-then-else-verklaring

Laten we een voorbeeld bekijken met behulp van geneste if-instructies:

j: = 50;
als j> = 0 vervolgens
  als j = 100 vervolgens Bijschrift: = 'Nummer is 100!'anders
Bijschrift: = 'Nummer is NEGATIEF!'; V

Wat is de waarde van "Kation"? Antwoord: "'Nummer is NEGATIEF!" Had ik dat niet verwacht?

Merk op dat de compiler geen rekening houdt met uw opmaak, u zou het bovenstaande kunnen hebben geschreven als:

j: = 50;
als j> = 0 thenif j = 100 vervolgens Bijschrift: = 'Nummer is 100!'anders
Bijschrift: = 'Nummer is NEGATIEF!'; V

of zelfs als (alles op één regel):

j: = 50; als j> = 0 vervolgens als j = 100 vervolgens Bijschrift: = 'Nummer is 100!'anders
Bijschrift: = 'Nummer is NEGATIEF!'; V

De ";" markeert het einde van een verklaring.

De compiler leest de bovenstaande verklaring als:

j: = 50;
als j> = 0 vervolgens
  als j = 100 vervolgens
Bijschrift: = 'Nummer is 100!'
  anders
Bijschrift: = 'Nummer is NEGATIEF!';

of om precies te zijn:

j: = 50;
als j> = 0 vervolgensbeginnen
  als j = 100 vervolgens
Bijschrift: = 'Nummer is 100!'
  anders
Bijschrift: = 'Nummer is NEGATIEF!';
einde;

Onze ELSE-verklaring zal worden geïnterpreteerd als een onderdeel van de "innerlijke" IF-verklaring. De "innerlijke" verklaring is een gesloten verklaring en heeft geen BEGIN… ELSE nodig.

Hoe te repareren

Om ervoor te zorgen dat u weet hoe uw geneste if-instructies worden behandeld door de compiler en om het bovenstaande "probleem" op te lossen, kunt u de eerste versie schrijven als:

j: = 50;
als j> = 0 vervolgens
  als j = 100 vervolgens Bijschrift: = 'Nummer is 100!' elseelse
Bijschrift: = 'Nummer is NEGATIEF!';

Uh! De lelijke "anders" eindigt de geneste if-lijn !? Compileert, werkt!

De beste oplossing is: gebruik altijd begin-einde paren met geneste if-instructies:

j: = 50;
als j> = 0 thenbegin
  als j = 100 vervolgens Bijschrift: = 'Nummer is 100!';endelsebegin
Bijschrift: = 'Nummer is NEGATIEF!';
einde

Te veel begin-einde paren voor jou? Voorkomen is beter dan genezen. Hoe dan ook, codesjablonen zijn ontworpen om veelgebruikte skeletstructuren aan uw broncode toe te voegen en vervolgens in te vullen.

Artikel ingediend door Marcus Junglas