AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

nur eine if-Schleife ausführen

Ein Thema von Jaegermeister1992 · begonnen am 3. Okt 2009 · letzter Beitrag vom 3. Okt 2009
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
Jaegermeister1992

Registriert seit: 2. Okt 2009
18 Beiträge
 
#1

nur eine if-Schleife ausführen

  Alt 3. Okt 2009, 09:32
Delphi-Quellcode:
i:= 16
if i=16 then begin

end

else if i=8+8 then begin

end

else if i=4*4 then begin

end

else if i=2+2+2+2+2+2+2+2

end
wenn man, dass etz ausführt trifft natürlich alles zu ist ja klar aber ich will das das Programm wenn die erste schleife ausgeführt wurde nicht noch die nächste ausgeführt wird .. gibt es so einen befehl wie goto zeile sowieso in delphi? oder wie mache ich das?

[edit=Matze][c]-Tags durch [delphi]-Tags ersetzt. MfG, Matze[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: nur eine if-Schleife ausführen

  Alt 3. Okt 2009, 09:35
Hallo,

erstens gibt es keine if-Schleifen, sondern if-Anweisungen. Eine Schleife ist etwas ganz anderes.
Zweitens gibt es in Delphi auch Delphi-Referenz durchsuchengoto, was jedoch unsauberer Programmierstil ist.
Drittens: Was möchtest du genau realisieren? Ich habe es noch nicht ganz verstanden. In deinem Fall sollte die 2. Schleife nicht ausgeführt werden, da die erste bereits zutrifft, hätte ich gesagt.

Grüße, Matze
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: nur eine if-Schleife ausführen

  Alt 3. Okt 2009, 09:36
Ich werde aus deinem Beitrag absolut nicht schlau.
Ich sehe keine Schleifen und die If Bedingugen sind alle identisch
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: nur eine if-Schleife ausführen

  Alt 3. Okt 2009, 09:42
Etwas OT:
In fast jedem deiner Beiträge ist das Wort "etz" zu finden. Ich weiß nicht ob das bei dir Mode ist oder generell, aber wenn du "jetzt" meinst, dann schreibe es doch bitte auch so. Das liest sich viel angenehmer und wirkt sachlicher. Zumindest geht es mir so.
Ich möchte dir nicht vorschreiben, was du wie schreiben sollst, aber ich denke, andere werden es dir danken, da deine Beiträge dann besser zu verstehen sind. Und die Verwendung von Punkt und Komma wäre auch sehr sinnvoll. Ich musste deinen Satz mindestens 2 x lesen um ihn zu verstehen.
  Mit Zitat antworten Zitat
Benutzerbild von Wolfgang Mix
Wolfgang Mix

Registriert seit: 13. Mai 2009
Ort: Lübeck
1.222 Beiträge
 
Delphi 2005 Personal
 
#5

Re: nur eine if-Schleife ausführen

  Alt 3. Okt 2009, 09:43
Da die If-Anweisungen alle identisch sind, sehe ich keinen Sinn in Deinem Vorhaben.

Schau Dir auch mal die Case-Struktur an

Gruß

Wolfgang
Wolfgang Mix
if you can't explain it simply you don't understand it well enough - A. Einstein
Mein Baby:http://www.epubli.de/shop/buch/Grund...41818516/52824
  Mit Zitat antworten Zitat
silver-moon-2000

Registriert seit: 18. Feb 2007
Ort: Schweinfurt
170 Beiträge
 
Delphi XE Professional
 
#6

Re: nur eine if-Schleife ausführen

  Alt 3. Okt 2009, 09:43
Man könnte z.B. das ganze in ein Case packen, so nach dem Prinzip:
Delphi-Quellcode:
case i of
16: begin end;
8+8: begin end;
end;
nur wird das nicht funktionieren, denn Du läufst hier in ein Problem:
Für den Compiler macht es keinen Unterschied, ob Du schreibst 16, 8+8, 4*4 oder sonstwas.
Die rechten Seiten dieser Vergleiche werden immer ausgewertet, bevor verglichen wird, und da auf der Rechten Seite eine Berechnung steht, wird das Ergbnis ermittelt, und das ist bei allen Rechnungen immer 16. Also fragst Du praktisch 4mal dieselbe Bedingung ab.

Du willst vermutlich wissen, auf welchem Weg das Ergebnis von 16 erreicht wurde, also ob gerechnet wurde 8+8 oder 4*4, aber so wirst Du das nicht erfahren können.
Tobias
Bitte nicht hauen , ich weiß es nicht besser
  Mit Zitat antworten Zitat
Jaegermeister1992

Registriert seit: 2. Okt 2009
18 Beiträge
 
#7

Re: nur eine if-Schleife ausführen

  Alt 3. Okt 2009, 09:44
An Matze:
Also eigt. sollte doch nur die erste Anweisung ausgeführt werden oder?
wenn ich das aber auf mein Programm umschreibe dann führt er alle aus also dann gibt er mir wenn man etz beispielsweise für den inhalt der if anweisung ne showmessagemeldung ausgeben lässt für jedes if und else if ne Shoemessage aus?
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: nur eine if-Schleife ausführen

  Alt 3. Okt 2009, 09:46
Du mit deinem "etz".

Schreibe mal deutlich und verständlich was du genau möchtest.
  Mit Zitat antworten Zitat
Jaegermeister1992

Registriert seit: 2. Okt 2009
18 Beiträge
 
#9

Re: nur eine if-Schleife ausführen

  Alt 3. Okt 2009, 09:48
Delphi-Quellcode:
procedure TForm1.Computer1Legen;
Var ArtA, FarbeA, FarbeC1, ArtC1, AblegenC1 : string;
    i : integer;
begin

  ArtA:=Copy(Aktuell.Items[0],3,1);
  FarbeA:=Copy(Aktuell.Items[0],0,1);

  for i:= 0 to C1.Items.Count-1 do begin
    FarbeC1:=Copy(C1.Items[i],0,1);
    ArtC1:=Copy(C1.Items[i],3,1);
    AblegenC1:= C1.Items[i];

    if (FarbeC1 = 'V') and (ArtC1 = 'Z') then begin
      Showmessage('Sie haben eine Vierziehen');
      Computer2Legen;
    end

    else if (FarbeC1 = 'F') and (ArtC1 = 'W') then begin
      Showmessage('Sie haben eine Farbwahl');
      Computer2Legen;
    end

    else if (FarbeC1 = FarbeA) and (ArtC1 = 'A') then begin
      Showmessage('Sie haben ein Aussetzen');
      Computer2Legen;
    end


    else if (FarbeC1 = FarbeA) and (ArtC1 = 'Z') then begin
      Showmessage('Sie haben ein Zweiziehen');
      Computer2Legen;
    end

    else if (FarbeC1 = FarbeA) and (ArtC1 = 'R') then begin
      Showmessage('Sie haben ein Richtungswechsel');
      Computer2Legen;
    end

    else if (FarbeC1 = FarbeA) or (ArtC1 = ArtA) then begin
      Showmessage('Hallo ' + inttostr(i));
      Computer2Legen;
    end;

  end;

end;
So das ist der ganze Code auf den ich das anwenden will
die Showmessage sind nur zum Test da werden nohc ersetz später.
Es handelt sich um das Spiel UNO
des Feld C1.ITems sind die aktuellen Karten des ComputerSpieler1
Das Feld Aktuell.Items ist die aktuell gelegte karte vom spieler zuvor.

Nun soll aber von diesen If-Anweisungen immer nur eine ausgeführt werden udn zwar von oben nach unten wenn die erste zutrifft sollen alle danach ignoriert werden oder wenn die 2. dann alle danach ignoriert werden...
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: nur eine if-Schleife ausführen

  Alt 3. Okt 2009, 09:49
Zitat von Jaegermeister1992:
Nun soll aber von diesen If-Anweisungen immer nur eine ausgeführt werden udn zwar von oben nach unten wenn die erste zutrifft sollen alle danach ignoriert werden oder wenn die 2. dann alle danach ignoriert werden...
Ist das denn nicht der Fall?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 08:45 Uhr.
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