!标志在java中有两种含义?
我想知道为什么!标志在java中有两种含义?,java,if-statement,not-operator,Java,If Statement,Not Operator,我想知道为什么!当它是传递给if语句的条件参数时,标志被视为false,在其他地方被视为true。!flag其中flag为false在所有上下文中,包括if语句,计算结果均为true。!flag其中flag为false在所有上下文(包括if语句)中的计算结果均为true。并非如此if(boolean expression){statement}表示“如果boolean expression为true,则执行语句”。因为标志=false,!flag==true。总是这样。不是if(boolean
!当它是传递给if语句的条件参数时,标志被视为false
,在其他地方被视为true
。!flag
其中flag
为false
在所有上下文中,包括if语句,计算结果均为true
。!flag
其中flag
为false
在所有上下文(包括if语句)中的计算结果均为true
。并非如此if(boolean expression){statement}
表示“如果boolean expression
为true,则执行语句”
。因为标志=false
,!flag==true
。总是这样。不是if(boolean expression){statement}
表示“如果boolean expression
为true,则执行语句”
。因为标志=false
,!flag==true
。始终。好吧,您可能误解了条件运算符的求值。if
运算符执行内部语句,当且仅当条件的计算结果为true
现在,flag
等于false
。这意味着标志
的否定将是true
(!false=true
)。这就是为什么执行if confinition中的一条语句并将true
(标志的否定值
)写入控制台输出的原因。您可能误解了条件运算符的计算。if
运算符执行内部语句,当且仅当条件的计算结果为true
现在,flag
等于false
。这意味着标志
的否定将是true
(!false=true
)。这就是为什么会执行if确认中的一条语句,并将true
(标志的否定值
)写入控制台输出。!flag
不会更改flag
的值,它只是在计算时将其取反
因为标志=false
,!标志
与相同!false
这是true
您的代码与此等效:
boolean flag = false;
if(!flag) System.out.println(!flag); // prints true
这相当于:
if (!false) System.out.println(!false);
!flag
不会更改flag
的值,它只是在计算时将其取反
因为标志=false
,!标志
与相同!false
这是true
您的代码与此等效:
boolean flag = false;
if(!flag) System.out.println(!flag); // prints true
这相当于:
if (!false) System.out.println(!false);
用人类语言:
如果flag不为true,则用人类语言打印“flag”的相反值:
如果flag不正确,请打印“flag”的相反值。!无论在何处,flag都应评估为true。我错过了什么?!无论在何处,flag都应评估为true。我缺少什么?如果布尔表达式为真,则执行该语句
这是我需要知道的。谢谢@dlev:)如果布尔表达式为真,请执行该语句
这是我需要知道的。谢谢@dlev:)