首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >!flag在java中有两种含义?

问!flag在java中有两种含义?
EN

Stack Overflow用户
提问于 2011-07-12 09:14:29
回答 5查看 18.4K关注 0票数 1
代码语言:javascript
复制
boolean flag = false;
if(!flag) System.out.println(!flag); // prints true

我想知道为什么当!flag是一个条件参数传递给if statement而在其他地方被认为是true时,它为什么被认为是false?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-07-12 09:16:54

事实并非如此。if (boolean expression) { statement }的意思是“如果boolean expression为真,则执行statement”。从flag = false开始,!flag == true。一直都是。

票数 8
EN

Stack Overflow用户

发布于 2011-07-12 09:16:44

!flag其中flag为false在所有上下文中的计算结果均为true,包括if语句。

票数 2
EN

Stack Overflow用户

发布于 2011-07-12 09:19:33

好吧,你可能误解了条件运算符的计算。当且仅当条件的计算结果为true时,if运算符才会在其中执行语句。

现在,flag等于false。这意味着flag的否定将是true (!false = true)。这就是为什么执行if配置中的语句并将true (flag的取反的值)写入控制台输出的原因。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6658511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档