Delphi-PRAXiS
Seite 1 von 6  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   EMB DCE 12 - Bedingungen mit einen Assign-Zeichnen (https://www.delphipraxis.net/215999-emb-dce-12-bedingungen-mit-einen-assign-zeichnen.html)

paule32.jk 9. Okt 2024 15:37

EMB DCE 12 - Bedingungen mit einen Assign-Zeichnen
 
Hallo,
ich habe mich schon öfters gefragt, warum bei Delphi Bedingungen/Condition's und Vergleichen der rechte Wert mit einen Assign-Zeichen (also dem ist-gleich = Zeichen) eingeleitet wird.

Für mich macht es mehr Sinn:
Delphi-Quellcode:
if foo == 42 then...
zu schreiben als:
Delphi-Quellcode:
if foo = 42 then ...
weil das if foo = 42 doch sehr nach Zuweisung und nicht gerade nach Vergleich anmutet.
Sind da Pläne bekannt, das zu ändern - oder ist das Historisch bedingt ?
ich mein... Alles Neu macht der Mai ...

Rollo62 9. Okt 2024 15:50

AW: EMB DCE 12 - Bedingungen mit einen Assign-Zeichnen
 
Zitat:

Zitat von paule32.jk (Beitrag 1542012)
Hallo,
ich habe mich schon öfters gefragt, warum bei Delphi Bedingungen/Condition's und Vergleichen der rechte Wert mit einen Assign-Zeichen (also dem ist-gleich = Zeichen) eingeleitet wird.

Das ist wohl der Ur-Pascal Syntax geschuldet, mach Dir keine Hoffnung auf Änderung :-D

Uwe Raabe 9. Okt 2024 16:03

AW: EMB DCE 12 - Bedingungen mit einen Assign-Zeichnen
 
Unter Pascal ist das "=" eben kein Assign-Zeichen, sondern ein Vergleichszeichen. Zum Assign verwendet man ":=".

Aber tröste dich, wenn man von Pascal kommt, dann sieht C halt einfach nur falsch aus.

Rollo62 9. Okt 2024 16:06

AW: EMB DCE 12 - Bedingungen mit einen Assign-Zeichnen
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1542015)
.. dann sieht C halt einfach nur falsch aus.

Soweit würde ich jetzt aber auch nicht gehen :-D

freimatz 9. Okt 2024 16:14

AW: EMB DCE 12 - Bedingungen mit einen Assign-Zeichnen
 
Ich schon. Ich kam von der Schule und da gab es nur "=". Ich fand das ":=" komisch und auch das ":=". :-D

himitsu 9. Okt 2024 16:22

AW: EMB DCE 12 - Bedingungen mit einen Assign-Zeichnen
 
Wobei grade in C-Sprachen dieser Mist viele Probleme bereitet hat.

Logisch und Syntaktisch finde ich = garnicht schlecht.
Es entspricht auch dem, was man im Matheunterricht mal gelernt hat.

Zitat:

Delphi-Quellcode:
if (i = 132) {

Und dann wurde später in Editoren eingebaut, dass es hier eine Warnung gibt, weil man vermutlich == machen wollte, es aber dennoch der Syntax entsprach,
denn so wird erstmal die Variable überschrieben und es ergibt auch immer True.

In nicht tysicheren C-igen kann man auch gern sowas bekommen. :lol:
1 + 1 = 11
1 - 1 = 0

Rollo62 9. Okt 2024 17:01

AW: EMB DCE 12 - Bedingungen mit einen Assign-Zeichnen
 
Zitat:

Zitat von freimatz (Beitrag 1542019)
Ich schon. Ich kam von der Schule und da gab es nur "=". Ich fand das ":=" komisch und auch das ":=". :-D

und wie findest Du "==", "===", "!=", "!==", "<>" "is" ?
Ist auch alles nicht besser :stupid:

Mit würde auch "=" "==" und "!=" reichen, aber die Welt ist halt komplexer :-D

paule32.jk 9. Okt 2024 17:21

AW: EMB DCE 12 - Bedingungen mit einen Assign-Zeichnen
 
also rein logisch und mathematisch bedeutet ja = eine Zuweisung - zum Beispiel für Variablen:
v = 2.
C = v + v.
C = 2 + 2.
C = 4.

dann gibt es noch =/= was in C/C++ != oder in Pascal <> bzw. >= or <= entspricht.
Ein:

if (var = 2) würde in C oder vielen anderen Programmiersprachen logisch "wahr" (1) ergeben,
weil zuerst der Variablen "var" der Wert 2 zugewiesen wird und die IF-Klausel dann schaut, ob der Wert der Variablen var 0 oder größer 0 ist.
Und alles was größer 0 ist (was hier der Fall ist) wird als 1 - also wahr gemätscht bzw. ausgewertet.
Das kann gefährlich werden wenn zum Beispiel auf EOF und/oder \0 geprüft werden soll.
Weil \0 zugleich das terminierende End-Byte ist - by C-Zeichketten (Pchar) wie auch beim erreichen der EOF Marke.
Beide Zeichen (also \0) haben dann unterschiedliche Bedeutungen.
Im Ascii-Zeichensatz entspricht dann \0 das lachende Smily-Zeichen, das man mit einen DOS-Eingabe-Hex-Editor zu Gesicht bekommt, wenn mit einen Hex-Editor das binäre Image einer executable betrachtet (sofern die Codepage auch auf ASCII oder UTF-8 gestellt ist).
Manche Hex-Editoren stellen auch einfach ein Leerzeichen dar - was dann auch gut verwechselt werden kann mit dem Leerzeichen 32 dez. oder 20 hex.
Dann gibt es auch noch die geniale Idee von Null-Feldern (zum Beispiel in Datenbankprogrammen)...

dummzeuch 9. Okt 2024 17:27

AW: EMB DCE 12 - Bedingungen mit einen Assign-Zeichnen
 
Diskutieren wir jetzt ernsthaft darüber, warum Delphi/Pascal anders ist als C/C++/Java ... ?

Dann kann man auch darüber diskutieren, warum in Pascal/Delphi/C/C++ eine Einrückung keine Bedeutung hat, wo sie doch in COBOL und Python so wichtig sind.

Will sagen: So eine Diskussion ist absolut sinnlos.

Rollo62 9. Okt 2024 17:28

AW: EMB DCE 12 - Bedingungen mit einen Assign-Zeichnen
 
Zitat:

Zitat von dummzeuch (Beitrag 1542029)
Will sagen: So eine Diskussion ist absolut sinnlos.

:thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:50 Uhr.
Seite 1 von 6  1 23     Letzte »    

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