Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi If Abfrage (https://www.delphipraxis.net/139968-if-abfrage.html)

Schnittcher 9. Sep 2009 11:16


If Abfrage
 
Hallo,

ich habe noch eine Frage zu der If Abfrage.

Delphi-Quellcode:
procedure TZahlen.get_Punkte(const Punkte: Integer);
begin
  FPunkte := Punkte;
end;

function TZahlen.vergleichen: string;
begin
  if FSpielerZahl1 = FComputerZahl1 then
  begin
    FPunkte := FPunkte + 1;
    Result := 'Sie haben gewonnen!'
  end;
  if FSpielerZahl2 = FComputerZahl2 then
  begin
    FPunkte := FPunkte + 1;
    Result := 'Sie haben gewonnen!'
  end;
  if FSpielerZahl3 = FComputerZahl3 then
  begin
    FPunkte := FPunkte + 1;
    Result := 'Sie haben gewonnen!'
  end;

end;
So sieht es jetzt aus und ich möchte eine Ausageb haben wenn keine der Abfragen stimmt.
Dann soll die Meldung "Sie haben verloren!" kommen.

Gruß,
Schnittcher

Forlan 9. Sep 2009 11:17

Re: If Abfrage
 
Stichwort: else

...

Evtl. solltest du dir mal die Delphi Tutorials anschauen. Denn eine "if" "then" "else" Abfrage ist nun wirklich Basiswissen ;)

XXcD 9. Sep 2009 11:19

Re: If Abfrage
 
Versuchs ungefähr so:
Delphi-Quellcode:
procedure TZahlen.get_Punkte(const Punkte: Integer);
begin
  FPunkte := Punkte;
end;

function TZahlen.vergleichen: string;
begin
 if (FSpielerZahl1 = FComputerZahl1) or (FSpielerZahl2 = FComputerZahl2) or (FSpielerZahl3 = FComputerZahl3) then
 begin
  if FSpielerZahl1 = FComputerZahl1 then
  begin
    FPunkte := FPunkte + 1;
    Result := 'Sie haben gewonnen!'
  end;
  if FSpielerZahl2 = FComputerZahl2 then
  begin
    FPunkte := FPunkte + 1;
    Result := 'Sie haben gewonnen!'
  end;
  if FSpielerZahl3 = FComputerZahl3 then
  begin
    FPunkte := FPunkte + 1;
    Result := 'Sie haben gewonnen!'
  end;
 end
 else
 begin
 Result := 'Sie haben verloren!'
 end;
end;

Schnittcher 9. Sep 2009 11:19

Re: If Abfrage
 
Hallo,

das ist klar, aber geht das denn jetzt?
Weil ich 3 verschiedene Abfragen habe.

Gruß,
Schnittcher

Forlan 9. Sep 2009 11:20

Re: If Abfrage
 
Zitat:

Zitat von Schnittcher
Hallo,

das ist klar, aber geht das denn jetzt?
Weil ich 3 verschiedene Abfragen habe.

Gruß,
Schnittcher

So wie es XXcD gemacht hat. Einfach das ganze mit einem Begin End block "umklammern" ;)

Satty67 9. Sep 2009 11:20

Re: If Abfrage
 
oder so (ungetestet):
Delphi-Quellcode:
if (FSpielerZahl1 = FComputerZahl1)
or (FSpielerZahl2 = FComputerZahl2)
or (FSpielerZahl3 = FComputerZahl3) then
begin
  FPunkte := FPunkte + 1;
  Result := 'Sie haben gewonnen!'
end
else
begin
  Result := 'Sie haben verloren!'
end;
€: OK, sehe gerade das es mehrmals Punkte gibt, nicht nur einmal...

Sharky 9. Sep 2009 11:21

Re: If Abfrage
 
Hai,

warum nicht einfach die "ausnahme" als Vorgabewert?

Delphi-Quellcode:
function TZahlen.vergleichen: string;
begin
  Result := 'Sie haben verloren';
  if FSpielerZahl1 = FComputerZahl1 then
  begin
    FPunkte := FPunkte + 1;
    Result := 'Sie haben gewonnen!'
  end;
  if FSpielerZahl2 = FComputerZahl2 then
  begin
    FPunkte := FPunkte + 1;
    Result := 'Sie haben gewonnen!'
  end;
  if FSpielerZahl3 = FComputerZahl3 then
  begin
    FPunkte := FPunkte + 1;
    Result := 'Sie haben gewonnen!'
  end;

end;

Forlan 9. Sep 2009 11:23

Re: If Abfrage
 
[OT] Ihr glaubt garnicht wie froh ich war mal "If Abfrage" im Titel zu lesen anstatt "If Schleife" :mrgreen: [/OT]

Schnittcher 9. Sep 2009 11:24

Re: If Abfrage
 
Hallo,

alles klar danke für die schnellen Antworten.

Eine Frage jetzt noch wenn ich sagen will "Sie haben 2 Zahlen richtig erraten!"

Das ich prüfe ob FPunkte zum Beispiel um 1 größer geworden ist oder um 2 oder um 3?

Und wenn größer um 2 dann: "Sie haben " Zahlen richtig erraten!"

Kann man das so machen?

Gruß,
Schnittcher

Satty67 9. Sep 2009 11:30

Re: If Abfrage
 
wenn Du die Anzahl der erratenen Punkte in einer Integer-variable hast (z.B. points), kannst Du einen String mit Format bilden:

ShowMessage(Format('Sie haben %d Zahlen richtig erraten!',[Points]));


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:25 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz