Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Frage zu If-Then-Else *g* (https://www.delphipraxis.net/4512-frage-zu-if-then-else-%2Ag%2A.html)

Pseudemys Nelsoni 2. Mai 2003 13:34


Frage zu If-Then-Else *g*
 
hi, also folgendes...

sagen wir mal ich habe 5 inf anweisungen:

if 1 = 1a then begin end;
if 2 = 2a then begin end;
if 3 = 3a then begin end;
if 4 = 4a then begin end;
if 5 = 5a then begin end;


wenn jetzt keine der if anweisungen zutrifft, wie reagiere ich dann mit else? wenn ichs hinten anfüge:

if 1 = 1a then begin end;
if 2 = 2a then begin end;
if 3 = 3a then begin end;
if 4 = 4a then begin end;
if 5 = 5a then begin end;
else 6 = 6a;

bezieht sich das ja nur auf die 5te if anweisung

danke für die hilfe

gruss silent

Stanlay Hanks 2. Mai 2003 13:39

so wie ich das sehe müsstest du das so machen:

Delphi-Quellcode:
begin
if (1=1a) OR (2=2a) OR (3=3a) OR (4=4a) OR (5=5a) THEN
begin
ShowMessage('Es trifft eine der Bedingungen zu.')
end // vor ELSE nie ein Semikolon (;)
ELSE
ShowMessage('Keine der Bedinugungen trifft zu');
end;
Man liest sich, Stanlay :firejump:

Peeters 2. Mai 2003 13:41

oder so:

Delphi-Quellcode:
if 1 = 1a then begin end
else
  if 2 = 2a then begin end
  else
    if 3 = 3a then begin end
    else
      if 4 = 4a then begin end
      else
        if 5 = 5a then begin end
        else 6 = 6a;

Pseudemys Nelsoni 2. Mai 2003 13:41

jo so ca hätt ichs auch gemacht, danke :)

hätt mit "if not (a = a1)" etc...aber hab mir eben beim "coden" gedacht....."hmm silent, meinst das sich ein else auch auf mehrere if anweisungen beziehen kann? - Das ist gut möglich frag mal im delphi board nach!"

nochmal thx :)

ssach 4. Mai 2003 13:47

eine else anweisung koentest du auch auf mehrer if anweisungen verwenden: aber du benutzt ein if! erklaerung :

du benutz eine Hilfsvariable vom typ boolean, wenn eine if anweisung zutrifft setzt du sie auf true, anders bleibt sie false!

am ende der anderen if anweisungen machst du jetzt einfach ne if anweisung mit :

if BOOLEAN = false then
begin
end



cu

Pseudemys Nelsoni 4. Mai 2003 15:22

danke :)

Hansa 10. Mai 2003 00:51

hi silent 8)

ich kommentiere mal den code, sonst wird das nichts, Bezeichner fangen niemals :!: mit einer Zahl ein, sonst hapertst schon da:

Code:
begin
if (1=1a) OR (2=2a) OR (3=3a) OR (4=4a) OR (5=5a) THEN
begin
ShowMessage('Es trifft eine der Bedingungen zu.')
end // vor ELSE nie ein Semikolon (;)
ELSE
ShowMessage('Keine der Bedinugungen trifft zu');
end;
es geht um case
Code:
ch := auswahl;
case ch of
 '1' : showmessage ('sie haben Funktion 1 ausgewählt');
 '2' : showmessage ('sie haben Funktion 2 ausgewählt!');
else
  showmessage ('sie haben keine gültige Funktion ausgewählt !!');
end;
'1' und '2' sind hier keine Bezeichner, wohlgemerkt, den Rest mal nachlesen.

[edit]Jetzt muß ich das doch tatsächlich noch einmal editieren: innerhalb von Case ist eine Sonderregelung für den ; -----> Handbuch, bevor ihr daran verzweifelt.

Pseudemys Nelsoni 10. Mai 2003 01:09

danke :)

also wird bei case statt ":=" nur ":" gesetzt? bei einer zuweisung? bzw ist ja gar keine, aber du weisst schon wie ich das meine =)

Hansa 10. Mai 2003 01:19

Du sollst das durchlesen !

noch einmal ein kleines Bsp.:

Code:
if i = 1 then
  showmessage ('1')
else if i = '2' then
  showmessage ('2')
else
  showmessage ('weder eins noch zwei');
end;
ist identisch mit:

Code:
case i of
  '1' : showmessage ('1');
  '2' : showmessage ('2');
else
  showmessage ('weder eins noch zwei');
end;

So, was ist nun übersichtlicher :?: Hast Du weniger als 10 Fallunterscheidungen, dann tipp von mir AUS die 10 if then else ein.

Christian S. 10. Mai 2003 09:57

Hallo! Vielleicht hilft Dir auch dieses Tutorial weiter. Es ist mir allerdings darin ein dummer, peinlicher Fehler unterlaufen: Nach dem Satz "Konstanten können dabei einzelne Werte, aber auch ganze Mengen sein. Beispiele wären folgende: " im Abschnitt CASE-Anweisung bringe ich Beispiele, darunter auch 'Hallo'. Das ist Unsinn, das muss da raus.

MfG,
Peter

Captnemo 10. Mai 2003 10:40

Case geht aber nur bei Ordinalen Typen. Nicht mit Strings (leider).

Christian S. 10. Mai 2003 10:46

Exakt deswegen habe ich auf diesen Fehler hingewiesen! :roll: Der Satz "Es ist mir allerdings darin ein dummer, peinlicher Fehler unterlaufen:" sollte irgendwie eindeutig sein ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:42 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-2025 by Thomas Breitkreuz