AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Überraschendes Verhalten im if-else if-Konstrukt
Thema durchsuchen
Ansicht
Themen-Optionen

Überraschendes Verhalten im if-else if-Konstrukt

Ein Thema von mariusbenz · begonnen am 2. Apr 2019 · letzter Beitrag vom 2. Apr 2019
 
mariusbenz

Registriert seit: 6. Mär 2015
38 Beiträge
 
Delphi 10.3 Rio
 
#1

Überraschendes Verhalten im if-else if-Konstrukt

  Alt 2. Apr 2019, 10:20
Delphi-Version: 10.2 Tokyo
Guten Morgen,

mir ist gerade etwas in einem if-else if Konstrukt aufgefallen, von dem ich der festen Überzeugung war, dass das geht.
Ich spare mir bei Schleifen und if-Abfragen gerne das begin-end wenn nur eine Anweisung kommt. Eine Anweisung kann dann auch bei Schleifen auch eine if-Abfrage + Anweisung sein.
Beispiel:
Delphi-Quellcode:
for I := 0 to 5 do
  // Eine Anweisung
  if I = 2 then
    ShowMessage('I = 2');
Bei folgendem Konstrukt geht das ganze dann aber schief:
Delphi-Quellcode:
if Form1.Caption = 'ksjhdgkthen
  ShowMessage('1')
else if Form1.Caption = 'fgjfstjthen
  // eigentlich ja auch eine Anweisung
  if Button1.Caption = 'Button1then
    ShowMessage('2')
else if Form1.Caption = 'Form1then
  ShowMessage('3');
Nach dem ersten else if (welches false zurückgibt) geht es allerdings nicht weiter ins nächste else if.

Folgendes funktioniert dann wieder:
Delphi-Quellcode:
if Form1.Caption = 'ksjhdgkthen
  ShowMessage('1')
else if Form1.Caption = 'fgjfstjthen
  begin
    if Button1.Caption = 'Button1then
      ShowMessage('2');
  end
else if Form1.Caption = 'Form1then
  ShowMessage('3');
Mich wundert warum bei einer Schleife eine einfache if-Anweisung nicht in begin end gekapselt werden muss, in meinem Beispiel-Konstrukt allerdings schon.

Geändert von mariusbenz ( 2. Apr 2019 um 10:24 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz