if mit 3 Bediengungen

Tonimakkaroni

Aktives Mitglied
Hallo ich habe : if a = 1 & b = 1 & c = 1
x = 1
if a = 1 & b= 1 & d =1
y= 1

und if a = 1 & b =1 & e = 1

Z =1

wenn ich aber nur a = 1 und b = 1 und c = 1 eingebe bekomm ich trotzdem x=1 y=1 und z =1 zurück woran könnte das liegen ? Ich habe auch schon alles mit && versucht aber mit dem selben Ergebnis.
 

kiwara

Aktives Mitglied
Dein Problem bei der Bedingung ist, dass man mit einem = einen Wert zuweist und mit == einen Wert auf gleichheit prüft, also das, was du möchtest.
Verwende aber lieber && statt &, das ist performanter.
 
X

Xyz1

Gast
Zuweisung gepaart mit binärem & führt zu arithmetischen Ausdrücken, die hier nicht gewünscht sind.
 
X

Xyz1

Gast
Das ist totale Verars. - denn:
Java:
        int a = 1, b = 1, c = 1;
        if (a = 1 & b = 1 & c = 1) {

        }

compiliert nicht - denn:
Code:
incompatible types: int cannot be converted to boolean

unexpected type
  required: variable
  found:    value

unexpected type
  required: variable
  found:    value
----
(Alt-Enter shows hints)

Wie gesagt, dort stehen Zuweisungen und binäre arithmetische Und's . . . .

Das kann keinesfalls funktionieren.
 
X

Xyz1

Gast
Zudem:
http://www.javaschubla.de/2007/javaerst0190.html

tatsächlich steht dort:
Java:
        int a = 1, b = 1, c = 1;
        if ((a = ((1 & b) = ((1 & c) = 1)))) {

        }

Der Zuweisungsoperator ist zudem Rechtsassoziativ. Du willst einem Wert einen Wert zuweisen? Das ist Verar.

Wäre er Linksassoziativ, wäre die Welt in Ordnung. :)
 
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben