boolean flag = false;
if(!flag) System.out.println(!flag); // prints true我想知道为什么当!flag是一个条件参数传递给if statement而在其他地方被认为是true时,它为什么被认为是false?
发布于 2011-07-12 09:16:54
事实并非如此。if (boolean expression) { statement }的意思是“如果boolean expression为真,则执行statement”。从flag = false开始,!flag == true。一直都是。
发布于 2011-07-12 09:16:44
!flag其中flag为false在所有上下文中的计算结果均为true,包括if语句。
发布于 2011-07-12 09:19:33
好吧,你可能误解了条件运算符的计算。当且仅当条件的计算结果为true时,if运算符才会在其中执行语句。
现在,flag等于false。这意味着flag的否定将是true (!false = true)。这就是为什么执行if配置中的语句并将true (flag的取反的值)写入控制台输出的原因。
https://stackoverflow.com/questions/6658511
复制相似问题