括号内"和"和"否"的条件

0 java boolean-logic conditional-statements

为什么

while(!s1.isEmpty() && !s2.isEmpty())
Run Code Online (Sandbox Code Playgroud)

while(!(s1.isEmpty() && s2.isEmpty()))
Run Code Online (Sandbox Code Playgroud)

不一样吗?

因为当我做的时候!(x&y)eclipse给了我一个错误.
http://pastebin.com/8zBK1jQv

错误信息:

Exception in thread "main" java.lang.NullPointerException
Run Code Online (Sandbox Code Playgroud)

Aln*_*tak 8

这是德摩根定律之一,是布尔代数的基础:

(NOT A) AND (NOT B) == NOT (A OR B)
Run Code Online (Sandbox Code Playgroud)

和它的相反:

(NOT A) OR (NOT B) == NOT (A AND B)
Run Code Online (Sandbox Code Playgroud)

也就是说,要解决你的第二个版本,则必须更换&&||.