首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么不能测试除了布尔值之外的任何东西?

为什么不能测试除了布尔值之外的任何东西?
EN

Stack Overflow用户
提问于 2012-05-15 15:51:28
回答 2查看 144关注 0票数 2

可能重复:

Why boolean in Java takes only true or false? Why not 1 or 0 also?

我今天想知道为什么Java不能测试除布尔值之外的任何其他类型。

在C、C++和许多其他语言(实际上是大多数编程语言)中,以下内容是可能的和有效的:

代码语言:javascript
运行
复制
int a = 0;
if (a) // evaluates to false
  ; // do something nice

a = 6;
if (a) // evaluates to true
  ; // do something more

这几乎在任何地方都适用于对象、数组;可以在内存中具有0x00000000值的任何东西。

问题是:为什么在Java中这是不可能的(您必须继续测试== 0== null)?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-15 15:52:57

我猜想其理由是因为它简化了事情。

if语句必须将值计算为两种可能的条件之一。Java所做的是要求您提供一个语句本身,该语句必须计算成两个可能的条件(布尔值),而不是接受其他值,并任意决定计算值为true还是false。

票数 0
EN

Stack Overflow用户

发布于 2012-05-15 15:52:44

因为等人决定Java不会这么做。

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

https://stackoverflow.com/questions/10604403

复制
相关文章

相似问题

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