首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >“for”循环中的错误是什么?

“for”循环中的错误是什么?
EN

Stack Overflow用户
提问于 2015-01-08 16:36:44
回答 2查看 206关注 0票数 2

为什么下面的内容会引发错误?

代码语言:javascript
复制
for(; 0   ;)     System.out.println("guess");  // or
for(;false;)     System.out.println("guess");  // or
for(; 1   ;)     System.out.println("guess");

但是,以下代码运行正常(无限):

代码语言:javascript
复制
for(;true;)      System.out.println("guess");

为什么它适用于true,而不适用于false

EN

回答 2

Stack Overflow用户

发布于 2015-01-08 16:48:40

Java在循环头中需要一个布尔值作为第二个参数,它计算语句,如果语句返回true,jvm将运行循环体的代码,而不是跳过主体。

0和1显然不是布尔值,也没有定义可以计算的语句(如x< y),而且由于java是一种静态的强类型语言(与Python或Perl不同),所以它不能将int转换为布尔值,因此会崩溃。

编辑:如果以语句形式提供"false“,JVM会注意到永远无法到达循环体,这将导致运行时错误。

票数 1
EN

Stack Overflow用户

发布于 2015-01-08 18:25:19

与C不同,在Java中,truefalse对应于boolean类型值,其中1和0对应于int (实际上,在C中没有boolean声明类型,布尔检查是基于整数比较完成的。在Java中,事情是不同的)。

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

https://stackoverflow.com/questions/27845091

复制
相关文章

相似问题

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