Hallo an alle Lesenden und Antwortenden!
» »» Warum soll sie seltsam sein?
Dazu müsste man etwas weiter ausholen! Was sind Ausdrücke? Man könnte sogar bis zur Aussagen/Prädikatenlogik ausholen! Eine Aussage ist immer entweder Wahr oder Falsch!
Dass eine Aussage immer entweder wahr oder falsch ist, sollte jedem klar sein. Aber deswegen ist noch lange nicht seltsam. :-)
- a==5; ist eine wahre Aussage wenn a gleich 5 ist.
- a=5; ist eine (wahre) Aussage (vorausgesetzt es wird 5 fehlerfrei auf a zugewiesen)
- sogar 5; selber ist eine (wahre) Aussage! -- komisch wirds bei 0; .-)
- document.formular.auswahl.checked ist eine Aussage
Alle obigen "Aussagen" sind gültige Ausdrücke! Sie werden bereits evaluiert zu true/false, wieso also nochmal abfragen ob true == true?
Es ging ja auch grundsätzlich darum, warum der eine Programmierer die boolsche Variable nochmals vergleicht und wieso es ein anderer Programmierer nicht macht. Dass die Vorgehensweise (a==5)==true keiner macht (zumindest keiner, den ich kenne), dürfte als vorausgesetzt gelten, obwohl sie nicht falsch ist.
Wenn Du ein Skript programmierst und jemand anderes soll es vielleicht mal verändern oder weiter anpassen, dann sind klare Ausdrücke der Form if(boolscheVariable == true) leichter verständlich.
ich finde genau das Gegenteil! if(checked) ist für mich leichter zu lesen als if(checked==true)
Wenn man mal programmiert hat, ist es eigentlich egal welche Ausdrücke man verwendet, aber es soll ja auch Leute geben, die da nicht so firm sind. Und meiner Erfahrung nach haben diese Menschen Probleme mit if(checked). Meine eigenen Skripte, die sonst keiner weiter bearbeiten muss, schreibe ich in dieser Art, weil ich mir damit "==true" an Schreibarbeit sparen kann. :-)
Und den Verneinungsoperator sollte man ohnehin kennen, wenn man sich mit Programmiersprachen beschäftigt!
Sollte man schon, aber es gibt genug, die den Operator nicht kennen, das ist genauso wie bei Pascal, wenn jemand fragt, was da jetzt das NOT soll. *augenverdreh* :-)
Auch eine nicht-boolsche Variable wird evaluiert zu einem Boolschen Ausdruck!
Aber doch erst, wenn ich sie mit einem bestimmten Wert (oder Wertebereich) verglichen habe, oder? Wenn meine nicht-boolsche Variable a den Wert 5 hat, dann bekomme ich noch lange keinen boolschen Ausdruck, wenn ich die Variable nicht mit etwas vergleiche.
Die Zuweisung des Wertes 5 zu meiner Variablen a mittels a=5 ergibt doch auch nur einen boolschen Ausdruck, wenn ich den Vergleich anstelle: "(Zuweisung a=5) == (fehlerfreie Zuweisung)"
Es kommt darauf an, ob man nicht der Übersichtlichkeit halber doch einen Vergleich mehr reinschreibt.
Ich hoffe ich konnte Deine Verwirrung etwas entwirren. :-)
Genau das (Verwirrung) passiert jedoch wenn man unnötige Abfragen einbaut! Auf der Uni lernten wir in der ersten Stunde von Programmiertechnik diese x==true Abfragen nur dort einzusetzen wo sie wirklich nötig sind (also fast nie *fg*), man sagte uns es sei einfach ein schlechter Stil und zeuge nicht gerade von der Fähigkeit/Wissen eines Programmierers!
Hmm, auf welcher Uni bist Du? Ich studiere Maschinenbau in Karlsruhe und da hatte ich zwei Semester Informatik, eines davon ist Programmieren mit Java. Uns hat man "aus Gründen der Übersichtlichkeit" nahe gelegt zu unterscheiden zwischen dem "Wert einer Variablen" und dem "Ergebnis eines Ausdruckes", wobei mir durchaus bewusst ist, dass der Wert einer Variablen das Ergebnis eines Ausdrucks ist. Die Vorlesung wurde übrigens von einem Prof. der Fakultät für Informatik gehalten, ebenso wie die Programmier-Übungen von Informatik-Studenten betreut wurden. :-)
Ist also auch ein bissl Geschmackssache ;-)
Vielleicht sollten sich auch mal die Professoren einigen, was eigentlich gelehrt wird. Erst wenn sich die mal geeinigt haben, können sie von gutem oder schlechtem Stil sprechen, bzw. von welcher Stil von welchen Fähigkeiten zeugt. ;-)
Wenn ich einen Motor konstruiere, gibt es ja schließlich auch mehrere, genau gesagt sogar unedlich viele, funktionierende Lösungen, aber es gibt nicht DIE richtige Lösung, die von hervorragendem Wissen zeugen würde.
Ich sage jetzt einfach mal als Fazit: Jedem so wie es ihm gefällt. :-)
Grüße
Andreas