Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Unklare Syntax (https://www.delphipraxis.net/66624-unklare-syntax.html)

Alexander Roth 1. Apr 2006 16:23


Unklare Syntax
 
Hallo,

das habe ich gerade gesehen ist für den Kompiler anscheinend 2 Deutig und er geht beidesmal in den Else Pfad:
Delphi-Quellcode:
  if form1.CheckPrimeArray.Checked then
  if primearray.Lauf=0 then
    primearray.Lauf:=3   
else
  primearray.Lauf:=0;
Denn er liest es anscheinend auch mal so:
Delphi-Quellcode:
  if form1.CheckPrimeArray.Checked then
  if primearray.Lauf=0 then
    primearray.Lauf:=3   
  else
    primearray.Lauf:=0;
Ist das ein Fehler von mir, oder ist das ein wirklich uneindeutiges Beispiel einer schlechten Pascal-Syntax.

Wie kriegt man das behoben?

noch_ein_hannes 1. Apr 2006 16:28

Re: Unklare Syntax
 
Naja, vielleicht ab und zu auch mal richtig ausschlafen?!? :-)

Die Muhkuh 1. Apr 2006 16:31

Re: Unklare Syntax
 
Hi,

Delphi-Quellcode:
if form1.CheckPrimeArray.Checked then
  if primearray.Lauf=0 then
    primearray.Lauf:=3   
else
  primearray.Lauf:=0;
Woher soll der Compiler auch wissen, was du meinst?

Am besten immer Begin und End hinzufügen:

Delphi-Quellcode:
if form1.CheckPrimeArray.Checked then
begin
  if primearray.Lauf=0 then
  begin
    primearray.Lauf:=3 
  end;
end
else
begin
  primearray.Lauf:=0;
end;

himitsu 1. Apr 2006 16:33

Re: Unklare Syntax
 
So sollte Delphi erkennen (macht es bei mir auch immer),
Delphi-Quellcode:
if form1.CheckPrimeArray.Checked then
  if primearray.Lauf=0 then
    primearray.Lauf:=3   
  else
    primearray.Lauf:=0;
denn das ELSE gehört immer zum letzten Abfrage-Block.

Das Einzige, was ich mir noch vorstellen könnte wäre das,
Code:
if form1.CheckPrimeArray.Checked then
  if primearray.Lauf=0 then
    primearray.Lauf:=3[b][color=#ff0000];[/color][/b]
else
  primearray.Lauf:=0;
aber hierbei sollte man eh besser ein BEGIN-END einfügen.
Delphi-Quellcode:
if form1.CheckPrimeArray.Checked then
begin
  if primearray.Lauf=0 then
    primearray.Lauf:=3;
end
else
  primearray.Lauf:=0;

Alexander Roth 1. Apr 2006 16:41

Re: Unklare Syntax
 
Zitat:

Naja, vielleicht ab und zu auch mal richtig ausschlafen?!? Smile
Danke für deinen Hochintellektuellen und hilfreichen Beitrag. :smile2:

Ja beginn und end habe ich eingefügt, und es klappt.

Zitat:

Zitat von himitsu
So sollte Delphi erkennen (macht es bei mir auch immer),
Delphi-Quellcode:
if form1.CheckPrimeArray.Checked then
  if primearray.Lauf=0 then
    primearray.Lauf:=3   
  else
    primearray.Lauf:=0;
denn das ELSE gehört immer zum letzten Abfrage-Block.

Du meinst das else gehört zu
Delphi-Quellcode:
if primearray.Lauf=0 then
Das würde das komische Verhalten erklären.

Danke

Tschüss

Khabarakh 1. Apr 2006 17:05

Re: Unklare Syntax
 
Zitat:

Zitat von Alexander Roth
Zitat:

Naja, vielleicht ab und zu auch mal richtig ausschlafen?!? Smile
Danke für deinen Hochintellektuellen und hilfreichen Beitrag. :smile2:

Vielleicht meint er damit, dass Ausgeschlafene ehr die Delphi-Hilfe konsultieren :smile2: .

Flocke 1. Apr 2006 18:42

Re: Unklare Syntax
 
Zitat:

Zitat von Alexander Roth
Du meinst das else gehört zu
Delphi-Quellcode:
if primearray.Lauf=0 then
Das würde das komische Verhalten erklären.

Das ist kein komisches Verhalten, so ist es eben definiert (wie Himitsu schon schrieb): ein ELSE gehört immer zum direkt davor stehenden THEN auf der selben Verschachtelungsebene - wie du es hinschreibst (also die Einrückung) ist dem Compiler völlig egal.

Frickeldrecktuxer_TM 1. Apr 2006 18:48

Re: Unklare Syntax
 
Zitat:

Zitat von himitsu
Das Einzige, was ich mir noch vorstellen könnte wäre das,
Code:
    primearray.Lauf:=3[b][color=#ff0000];[/color][/b]
else

vorstellen? apropos vorstellen, darf ich vorstellen? das ist error, syntax error.

Elvis 1. Apr 2006 19:01

Re: Unklare Syntax
 
Zitat:

Zitat von Frickeldrecktuxer_TM
Zitat:

Zitat von himitsu
Das Einzige, was ich mir noch vorstellen könnte wäre das,
Code:
    primearray.Lauf:=3[b][color=#ff0000];[/color][/b]
else

vorstellen? apropos vorstellen, darf ich vorstellen? das ist error, syntax error.

*rofl*, und schon weiß ich wer du bist. :P

SirThornberry 1. Apr 2006 19:07

Re: Unklare Syntax
 
Ich möchte euch bitten zurück zum thema zu kommen und nicht unsachlich zu werden. Ich möchte nur ungern den Thread wegen OT schließen..


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:22 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