Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   while <-> while not (https://www.delphipraxis.net/194135-while-while-not.html)

erich.wanker 20. Okt 2017 10:27

while <-> while not
 
Hallo Leute,
ich hab eine komische Frage:

Wo ist da mein Denkfehler ???? .. wieso gehen nicht beide Ansätze?

//breite und display sind Integer

NICHT funktionierender Code
Code:
while not breite > display do
begin
breite:=breite+260;
end;

Funktionierender Code
Code:
while breite < display do
begin
breite:=breite+260;
end;

TigerLilly 20. Okt 2017 10:32

AW: while <-> while not
 
Weil
Code:
not breite > display
was anderes ist als
Code:
not ( breite > display )
Achtung auf die Prioritäten von Operatoren. In Wahrheit schreibst du:
Code:
(not breite) > display

Jumpy 20. Okt 2017 10:37

AW: while <-> while not
 
Klammer?

while not (breite > display) do

Edit: Langsamer, knapper erklärt, rote Box nicht gehabt. Mist. Zeit für WE :)

himitsu 20. Okt 2017 12:06

AW: while <-> while not
 
http://docwiki.embarcadero.com/RADSt...von_Operatoren

bra 20. Okt 2017 12:48

AW: while <-> while not
 
Delphi hat leider eine Operatorreihenfolge, die m.E. nicht wirklich logisch ist und z.B. von C deutlich abweicht...

himitsu 20. Okt 2017 13:50

AW: while <-> while not
 
kommt drauf an.

NOT ist höchstrangig, genauso wie das unäre Minus (das Vorzeichen, nicht der Operator).

AND und OR sind, bezogen auf Verleiche und Operatoren ala +-*/ , halt in der Rangfolge andersrum, als beim C.
(wie das NOT im C zählt, weiß ich jetzt nicht)

HeZa 21. Okt 2017 17:06

AW: while <-> while not
 
Das die Klammern fehlen ist ja schon gesagt worden. Damit die beiden Ausdrücke aber equivalent sind, dazu fehlt noch ein Gleichheitszeichen.
Also entweder so:
Delphi-Quellcode:
while not (breite > display) do
und so
Delphi-Quellcode:
while breite <= display do

oder so:
Delphi-Quellcode:
while not (breite => display) do
und so
Delphi-Quellcode:
while breite < display do


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