Frage von momo123momo, 81

Wann kommt beim programmieren 2 mal =?

Antwort
von Palladin007, 10

Weil zalto das Beispiel "Auto" gebracht hat das gut Beispiel taugt:

Stell dir mal vor, Du bist Auto-Verkäufer und redest mit einem potentiellen Kunden. Dieser Kunde möchte ein ein rotes Auto haben. Er sagt dir, er möchte ein rotes Auto haben.

Du als Verkäufer überlegst also, welche roten Autos Du anbieten kannst. Im Kopf gehst Du also alle Autos durch und merkst dir alle, die die Farbe Rot haben.

Ein Programm macht das ähnlich. Wenn der Benutzer alle roten Autos aufgelistet haben will, dann schaut das Programm erst mal nach, welche Autos überhaupt da sind. Anschließend schaut es sich jedes Auto einzeln an und fragt nach, welche Farbe es hat. Wenn das Auto die Farbe Rot hat, dann nimmt es das Programm in einer eigens dafür angelegten Liste auf.
Es macht also für jedes Auto:

if (auto.Farbe == "Rot")
{
roteAutos.Add(auto);
}
Du hast ein Auto ausgesucht und führst den Kunden dort hin.
Auf dem Weg dorthin fällt dem Kunden aber ein Auto auf, dass ihm sehr gut gefällt, das ist allerdings grün. Er fragt dich also, ob Du es nicht neu lakieren kannst und Du stimmst zu.
Du und dein Team bringen also das Auto in die Werkstadt und beginnen damit, es in Rot zu lakieren.

Ein Programm hat es an dieser Stelle etwas einfacher: Es lakiert nicht, es hat ja nur Daten, die geändert werden müssen.
Aber dennoch ist es ähnlich: Es sucht das Auto heraus, was der Kunde haben will und merkt es sich. Anschließend ändert es die Farbe des Autos.
auto.Farbe = "Rot";
Wenn nun der Kunde wieder fragen würde, welche roten Autos da sind, würde das nun rot "lakierte" Auto ebenfalls dort auftauchen, da der Vergleich im Code-Schnipsel oben "wahr" ergeben würde.

---------------------

Das nebenbei auch noch als kleines Exkurs in die Objektorientierung.
Das muss natürlich nicht mit einem Auto passieren, oder allgemein einem Objekt. Ein Programm hat jede Information, mit der es arbeiten kann, irgendwo gespeichert. In den meisten Fällen nutzt es diese Daten mit Hilfe einer Variable. Die kann genauso behandelt werden, sie kann verglichen oder ihr kann ein neuer Wert zugewiesen werden.

Beachte dabei aber: Mit Vergleichen ist nicht das Vergleichen gemeint, was Du vermutlich darunter verstehst. Damit ist gemein: Ist das eine das selber wie das andere? Die Farbe "Rot" vergleichen mit der Farbe "Grün" würde also "falsch" ergeben, während "Rot" mit "Rot" verglichen "wahr" ergeben würde.
So zumindest bei streng typisierten Sprachen (C# zum Beispiel, wie Python da ist, weiß ich nicht)
Für die lieben Klugscheißer: Ja, z.B. unter C# gibt esMöglichkeiten, das zu umgehen, aber für das Beispiel ist das unerheblich und würde die Sache nur unnötig verkomplizieren.

Als schwach typisiertes Beispiel: PHP
Dort könntest Du auch einen Text, in dem das Wort "Rot" drin steht, mit der eigentlichen Farbe "Rot" vergleichen, PHP würde mit "wahr" antworten.
Unter PHP kann man aber auch die strenge Typisierung bei Vergleichen Erzwingen. Dafür brauchst Du drei Gleichheitszeichen.
Dann würde auch der Vergleich des Textes "Rot" mit der Farbe "Rot" zu dem Ergebnis "falsch" führen, da ein Text keine Farbe ist.

Für die Klugscheißer: Ja, das lässt sich nicht so verallgemeinert sagen, besser wäre das Beispiel true == "true", aber das anhand Farben zu erklären, ist mMn. einfacher.
Antwort
von PWolff, 5

1. in Programmiersprachen mit C-ähnlicher Syntax (C, C++, Java, C#, Mathematica-Language, JavaScript / ECMAScript u. v. a. m.)

2. dort ist "==" der Gleichheits-Operator, d. h.

a == b

ergibt true, wenn a und b gleich sind, und false, wenn a und b ungleich sind.

(Anmerkung: != prüft auf Ungleichheit)

Antwort
von TUrabbIT, 3

In vielen Programmiersprachen wird zwischen '=' und '==' unterschieden.
Dabei steht '=' für eine Zuweisung, also Bsp: int a =1 bedeutet, das die Variable a den Wert 1 erhält. Dagegen steht '==' für einen Vergleich, also Bsp if(a==1) bedeutet: wenn a den Wert 1 hat.

Das ist aber nicht in anderen Programmiersprachen so, einige unterscheiden für Nicht oder nutzen eine andere Deklaration

Antwort
von Trabbifrager, 20

Kann von der Sprache abhängen. In C# ist es glaub ich so:

= ist ein Gleichheitszeichen. also wenn du eine variable hast kannst du dieser variablen einen wert zu ordnen. Bsp:

int Test = 340

== heißt entsprechend. Kann man für bedingungen benutzen. Bsp:

if (Test1 == Test2)
{ Console.WriteLine ("blablabla"); }

Ausgeschrieben: wenn der Wert von Test1 dem Wert von Test2 entspricht, schreibe Blablabla.
Bei einem Gleichheitszeichen würde er den Wert von Test2 für Test1 übernehmen.

Keine Garantie auf Richtigkeit ;)

Antwort
von zalto, 29

Bei einem Vergleich "==", bei einer Zuweisung "=".

a==b ergibt wahr, wenn a gleich b ist.

a=b weist a den Wert von b zu.

Es gibt Programmiersprachen, wie z.B. BASIC, die machen diesen subtilen Unterschied nicht, da gibt es nur ein "=". 

Andere Sprachen kennen sogar noch ein "===", um auf Wert UND Typ zu testen.

Kommentar von momo123momo ,

Was meinst du mit Vergleich ? Informatik ist Sau schwer zu verstehen .. :(

Kommentar von zalto ,

Ich sage dem Computer "Autofarbe = grün".

Das kann bedeuten "Computer, das Auto soll grün sein." oder "Computer, sage mir, ob das Auto grün ist."

Das erste wäre eine Zuweisung von "grün" an die Autofarbe.

Das zweite ein Vergleich von "grün" mit der Autofarbe.

Antwort
von Xandoo94, 22

== steht für einen Vergleich also Inhalt gleich Inhalt und = steht für Zuweisung also Inhalt ist gleich inhalt

Kommentar von momo123momo ,

Versteh ich nicht

Kommentar von Xandoo94 ,

troll hier jemand anderes

Antwort
von einjannis, 16

Ich bin mir nicht ganz sicher, aber ich glaube, dass du mit == ausdrückst, dass der Inhalt gleich sein soll. Wenn du bloß a=b sagst, dann halt ob der Variablennamen gleich ist. Wenn aber a==b, ob der Inhalt der Gleiche ist. Kann sein, dass das nicht stimmt. Bin für Verbesserungen offen. :D

Antwort
von styli1000, 6

Weil ein Gleichheitszeichen zumindest bei Java für Zuweisungen ist.

Antwort
von Schachpapa, 7

Das hängt immer von der Programmiersprache ab.

In Python schreibst du mit

a = "Klaus"

dass die Variable a den Wert "Klaus" haben soll.

b = "Kurt"

weist an b einen anderen Wert zu. Mit == kannst du die aktuellen Werte vergleichen:

if a==b:
print "a und b sind gleich"
else:
print "a und b sind verschieden"

Da sollte dann "a und b sind verschieden" herauskommen.

Wenn du vorher b = "Klaus" oder b=a geschrieben hättest, wäre "a und b sind gleich" herausgekommen.

Einfaches =
a = wert
wert wird an die Variable  a zugewiesen

Doppel ==
a == wert
a wird mit wert verglichen (mit dem Ergebnis True oder False)



Antwort
von Franz1957, 4

Hier ist eine Tabelle, wo man es nachschauen kann:

https://de.wikipedia.org/wiki/Vergleichsoperator

Keine passende Antwort gefunden?

Fragen Sie die Community