Boolscher Ausdruck

KogoroMori21

Aktives Mitglied

Boolscher Ausdruck​


Zu welchem Wert wird der nachfolgende Ausdruck in der Programmiersprache Java ausgewertet?
Wie lautet der Wert des Ausdrucks 'true and false or true and false'

Meine Antwort lautet: true && false || true && false

Die Syntax sagt jedoch das mein Ergebnis falsch ist, aber ich erkenne den Fehler nicht. Für mich scheint das richtig zu sein.
 
Beste Antwort
Hallo ein True (1) verknüpft (Und) mit False (0) wird immer False (0) ergeben.
0 0 & 0
0 1 & 0
1 0 & 0
1 1 & 1

dein gesamter Ausdruck wird immer False (unwahr) sein.

denn Bei deinem „Und“ kommt immer false raus. Da nützt dir das oder nichts.

temi

Top Contributor

Boolscher Ausdruck​


Zu welchem Wert wird der nachfolgende Ausdruck in der Programmiersprache Java ausgewertet?
Wie lautet der Wert des Ausdrucks 'true and false or true and false'

Meine Antwort lautet: true && false || true && false

Die Syntax sagt jedoch das mein Ergebnis falsch ist, aber ich erkenne den Fehler nicht. Für mich scheint das richtig zu sein.
Die Frage ist doch nicht, wie man das in Java schreibt, sondern was am Ende dabei raus kommt, also, ob das Endergebins true oder false ist.
 

Jw456

Top Contributor
Hallo ein True (1) verknüpft (Und) mit False (0) wird immer False (0) ergeben.
0 0 & 0
0 1 & 0
1 0 & 0
1 1 & 1

dein gesamter Ausdruck wird immer False (unwahr) sein.

denn Bei deinem „Und“ kommt immer false raus. Da nützt dir das oder nichts.
 
Zuletzt bearbeitet:
Beste Antwort

temi

Top Contributor
PS das der Compiler einen syntax fehler gibt ist klar.
true , false sind keine variablen.
Ich denke, darum geht es nicht, denn "and" und "or" gehören auch nicht zur Sprache. Es geht schlicht um den Operandenvorrang.

Und dieses System.out.println(true && false || true && false); funktioniert durchaus. @kneitzel kann dir sicher die Stelle in der JLS raussuchen (bzw. kennt sie auswendig), ich bin da jetzt zu faul dafür. ;)
 
Zuletzt bearbeitet:

temi

Top Contributor
Hallo ein True (1) verknüpft (Und) mit False (0) wird immer False (0) ergeben.
0 0 & 0
0 1 & 0
1 0 & 0
1 1 & 1

dein gesamter Ausdruck wird immer False (unwahr) sein.

denn Bei deinem „Und“ kommt immer false raus. Da nützt dir das oder nichts.
In der Regel versuchen wir in diesem Forum soviel Hilfe zu geben, dass Aufgaben selbständig gelöst werden können und nicht die komplette Lösung. Es hat ja durchaus eine lernfördernde Wirkung, selbst zu denken.
 
K

kneitzel

Gast
Also wie schon richtig gesagt: Es geht nur um die Rangfolge (Operator precedence) - diese wird in der JLS im Kapitel 15 mit behandelt.

Das ist aber so, wie man es auch schon aus anderen Bereichen kennt - Java hat da nichts gemacht, was nicht generell bekannt wäre. Da kann man also zum einen von der Logik her heran gehen - da wird das und oft weggelassen - also aus a und b wird dann in der Darstellung einfach ab. Prinzipiell kann man dann noch das oder mit + schreiben und dann hätte an etwas wie Punkt vor Strich Rechnung. (Das ist so nicht hoch exakt dargelegt, aber als Merkhilfe ist das evtl. interessant).

Denn der Ausdruck true && false || true && false wird daher erst zu false || false ausgewertet. Die Aussage
denn Bei deinem „Und“ kommt immer false raus. Da nützt dir das oder nichts.
habe ich so interpretiert, dass da dann das && false am Ende irgendwie als Kriterium schon ausgereicht hätte - und das ist nicht so!
"true || true && false" oder "true && false || true" würden beide zu true ausgewertet. (Bei erstem kommt es nicht einmal zur Auswertung vom && !)
 

Jw456

Top Contributor
Java macht nach meiner Auffassung Boolesche Algebra. Und vor Oder

@kneitzel da hast du nicht ganz recht teste es .
habe ich so interpretiert, dass da dann das && false am Ende irgendwie als Kriterium schon ausgereicht hätte - und das ist nicht so!
"true || true && false" oder "true && false || true" würden beide zu true ausgewertet. (Bei erstem kommt es nicht einmal zur Auswertung vom && !)
das hast du falsch interpretiert habe ich so auch nicht gesagt.



true && false || true && false

ist

(true && false) || (true && false)
 
Zuletzt bearbeitet:
K

kneitzel

Gast
Java macht nach meiner Auffassung boolesche algebra. Und vor Oder
Genau das habe ich ja auch geschrieben. Daher ist die Auswertung einer Und Operation bei mehreren Oder-Operationen nicht aussagekräftig. Es müssen alle Teile, die mit Oder verknüpft werden, betrachtet werden (bis ein true Element gefunden wurde).

Mit dem Punkt / Strich Rechnungen, die ich erwähnt habe, besagt dies ja nur:
Wenn Du irgendwelche Ausdrücke (mit Multiplikation) addierst, dann ist das Gesamtergebnis nicht 0, nur weil ein Ausdruck, der addiert wird, eine Multiplikation mit 0 enthält.

Also ein a*b+c*0 ist als Ausdruck nicht 0 sondern erst einmal a*b.
Hier hat man aber ein a*0 + b*0 - daher kommt da zwar ein 0 raus, aber das liegt nicht an einer einzelnen Multiplikation mit 0.

Der Ausdruck ist daher false, weil auf beiden Seiten des Oder eine und-Verknüpfug mit false enthält,

true && false || true && false ist daher natürlich (true && false) || (true && false) - das kann man dann vereinfachen, wie man will...
a | a = a -> (true && false)
a&b | c&b = (a|c) & b -> (true | true) & false
...

Hier kann man sich vieles überlegen. Aber nur an EINEM der beiden && kann man da Endergebnis nicht feststellen.
 

Jw456

Top Contributor
Hier kann man sich vieles überlegen. Aber nur an EINEM der beiden && kann man da Endergebnis nicht feststellen.
das habe ich nicht gesagt das hast du interpretier.

Boolesche Algebra ist nun mal " Und vor Oder" und da werden erst die UND Therme gebildet und dann das ODER, wenn es keine Klammern gibt.

Der Ausdruck ist daher false, weil auf beiden Seiten des Oder eine und-Verknüpfug mit false enthält,
genau das sagte ich das das oder in diesem fall nichts bewirkt.
 
Zuletzt bearbeitet:

berndoa

Top Contributor
Real hätte man, da da zweimal haargenau der selbe Ausdruck steht links und rechts vom oder
(wäre bei und übrigens genauso, wobei da klammern nötig wären damit es nicht von links nach rechts ausgewertet wird),
das Ganze auch einfach zu true and false verkürzen können.
was falsch ist :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Boolscher Ausdruck für mich unverständlich Java Basics - Anfänger-Themen 7
G Boolscher Ausdruck Java Basics - Anfänger-Themen 11
M seltsames Phänomen in der Auswertung boolscher Variablen Java Basics - Anfänger-Themen 7
W Reguläre Ausdruck Java Basics - Anfänger-Themen 6
hebein PDF Ausdruck auf Drucker - Probleme mit Format Java Basics - Anfänger-Themen 17
K Warum zeigt dieser reguläre Ausdruck true an? Java Basics - Anfänger-Themen 1
berserkerdq2 Wie würde man einen regulären Ausdruck in Java schreiben, der prüft, dass zwei bestimtme Zahlen nicht nebeneinadner sind? Java Basics - Anfänger-Themen 3
P Einfacher regulärer Ausdruck (RegEx) für E-Mail-Adressen Java Basics - Anfänger-Themen 2
C Ausdruck Java Basics - Anfänger-Themen 4
E Boolescher Ausdruck Java Basics - Anfänger-Themen 1
M Regex-Ausdruck: Alle Zeichen bis auf ein bestimmtes erlauben (p{L}) Java Basics - Anfänger-Themen 5
G Warum ist hier ein Lamda-Ausdruck möglich Java Basics - Anfänger-Themen 2
O Lambda Ausdruck mit Wildcard einschränken Java Basics - Anfänger-Themen 5
F Ist das ein korrekter Regex-Ausdruck? Java Basics - Anfänger-Themen 12
B Interface Java Lambda Ausdruck. Java Basics - Anfänger-Themen 11
B Regulärer Ausdruck Java Basics - Anfänger-Themen 12
G Boolschen Ausdruck true machen Java Basics - Anfänger-Themen 2
F Ausdruck wirft unerwarteten Error Java Basics - Anfänger-Themen 2
D Regulärer Ausdruck Java Basics - Anfänger-Themen 8
K Regulären Ausdruck in Java abbilden Java Basics - Anfänger-Themen 4
B Regulärer Ausdruck Java Basics - Anfänger-Themen 3
M Lambda - Ausdruck zu Beschreibung erstellen Java Basics - Anfänger-Themen 7
D Java Ausdruck erzeugen / Formular Java Basics - Anfänger-Themen 4
A regulären Ausdruck mit Hilfe der Klasse Scanner in einem String finden Java Basics - Anfänger-Themen 2
J Frage zu bestimmtem Ausdruck Java Basics - Anfänger-Themen 2
G Lambda Ausdruck: Welche Methode ist die Richtige? Java Basics - Anfänger-Themen 1
C Auswertung Ausdruck mit Punknotation + Objekt als Parameter Java Basics - Anfänger-Themen 3
M Arithemtischer Ausdruck unklar Java Basics - Anfänger-Themen 2
C Regulärer Ausdruck matched nicht Java Basics - Anfänger-Themen 2
A Lässt sich dieser Ausdruck irgendwie einfacher schreiben? Java Basics - Anfänger-Themen 4
H Regulären Ausdruck automatisch erstellen Java Basics - Anfänger-Themen 5
T Erste Schritte Im arithm. Ausdruck Zeichen trennen? Java Basics - Anfänger-Themen 13
D Boolescher Ausdruck - Problem Java Basics - Anfänger-Themen 6
B Regulärer Ausdruck gesucht Java Basics - Anfänger-Themen 6
M regulärer Ausdruck funktioniert nicht Java Basics - Anfänger-Themen 6
R Suche Regex Ausdruck für HTML Java Basics - Anfänger-Themen 11
E Hilfe bei einem Regulären Ausdruck Java Basics - Anfänger-Themen 7
X Regulärer Ausdruck für einen FileNameFilter Java Basics - Anfänger-Themen 2
S Einfaches Regulaerer Ausdruck Problem Java Basics - Anfänger-Themen 7
S regulärer Ausdruck HTML Java Basics - Anfänger-Themen 5
turmaline Ein regulärer Ausdruck für HTML-Sonderzeichen Java Basics - Anfänger-Themen 3
3 3. Element mit regulären Ausdruck suchen Java Basics - Anfänger-Themen 12
M regex-Ausdruck irgendein Buchstabe 1 mal Java Basics - Anfänger-Themen 8
S Was bedeutet dieser ausdruck? Java Basics - Anfänger-Themen 9
S String nach Ausdruck durchsuchen und Folgeattribut ausgeben Java Basics - Anfänger-Themen 3
H Ausdruck vereinfachen Java Basics - Anfänger-Themen 8
J Datentypen String splitten ohne festen Ausdruck Java Basics - Anfänger-Themen 8
H while schleife ohne ausdruck Java Basics - Anfänger-Themen 7
H Datei durchsuchen mit Regex-Ausdruck Java Basics - Anfänger-Themen 14
O Gibt es dafür einen regulären Ausdruck? Java Basics - Anfänger-Themen 9
B regulärer Ausdruck mit Metazeichen Java Basics - Anfänger-Themen 4
O RegEx-Ausdruck gesucht Java Basics - Anfänger-Themen 2
C bedingten ausdruck zu if-anweisung Java Basics - Anfänger-Themen 3
D regulärer Ausdruck: ^ $ Java Basics - Anfänger-Themen 6
O Mal wieder ein Regex-Ausdruck gesucht! Java Basics - Anfänger-Themen 5
F Regulärer Ausdruck warum false ? Java Basics - Anfänger-Themen 3
O Regulärer Ausdruck gesucht Java Basics - Anfänger-Themen 2
S Regulärer Ausdruck - alles was keine Zahl ist entfernen Java Basics - Anfänger-Themen 2
S regulärer ausdruck zum zählen eines wortes Java Basics - Anfänger-Themen 4
K Regulärer Ausdruck Java Basics - Anfänger-Themen 7
R Regulären Ausdruck geht nicht Java Basics - Anfänger-Themen 2
L Regulärer Ausdruck Java Basics - Anfänger-Themen 2
J Bitte um Erklärung für einen Java-Ausdruck Java Basics - Anfänger-Themen 8
M regulärer Ausdruck Java Basics - Anfänger-Themen 3
T Wie sieht ein '.' im regulären Ausdruck aus? Java Basics - Anfänger-Themen 2
G Wie erstellt man komplexen regulären Ausdruck Java Basics - Anfänger-Themen 5
R Reguläre Ausdruck definieren Java Basics - Anfänger-Themen 3
G Substrings in regulärem Ausdruck Java Basics - Anfänger-Themen 2
F Boolescher Ausdruck (String) in boolean konvertieren Java Basics - Anfänger-Themen 5
F Der "super" Ausdruck Java Basics - Anfänger-Themen 4
S Ausdruck zur Laufzeit auswerten Java Basics - Anfänger-Themen 10
G Was zum Teufel ist denn so ein Ausdruck"variabel : vari Java Basics - Anfänger-Themen 8
X Regulärer Ausdruck Java Basics - Anfänger-Themen 6
E regulärer Ausdruck -> wo ist der Fehler Java Basics - Anfänger-Themen 9
G regulärer Ausdruck alles was zwischen ' ' steht Java Basics - Anfänger-Themen 4
P Zeile als regulärer Ausdruck Java Basics - Anfänger-Themen 5
G Regulärer Ausdruck: gefunden und gleichzeitig nicht gefunden Java Basics - Anfänger-Themen 5
M Scanner soll nach einem Ausdruck splitten Java Basics - Anfänger-Themen 2
R Ausdruck Java Basics - Anfänger-Themen 2
M regulärer Ausdruck zum Parsen einer E-Mail Signatur Java Basics - Anfänger-Themen 16
T Regulärer Ausdruck Java Basics - Anfänger-Themen 4
J Was sagt mir dieser Ausdruck? Java Basics - Anfänger-Themen 9
G regulärer ausdruck zur überprüfung von ip-adresse? Java Basics - Anfänger-Themen 13
S Ausdruck? Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben