2016-04-24 8 views
-9

Ok, ich arbeitete an einem Programm und ich stieß auf ein kleines Problem/Frage.Der! und die && Operatoren Java

z.

int num1 = 3, int num2 =0; 
while (!num1 == 1 && num2 == 0) 
    { 
     ... 
    } 

Ist die ! auf das gesamte statment gelten oder nur zum Teil vor &&?

+4

daraus lernen https://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators .html –

+3

'! num1 == 1' Dieser Code wird nicht kompiliert. – Radiodef

Antwort

0

Die ! wird vor dem && angewendet entsprechend der Java order of operations, so dass die ! nur vor dem && zum Teil zutrifft.

+0

Es wird auch vor '==' angewendet, also wird es nicht einmal kompiliert. – Andreas

3

Die ! Teil tatsächlich gilt nur für die num1 Ganzzahl (was ist sicherlich nicht das, was Sie wollen), nicht einmal die Teil.

Also Ihr Ausdruck ist im Grunde,

if (((!num1) == 1) && (num2 == 0)) { 
+0

Um zu klären, '! num1' ist ungültig, daher wird der Code weder mit noch ohne diese Klammern kompiliert. Sie können nicht boolesch * "nicht" * auf einer Zahl in Java ausführen. – Andreas