繁体   English   中英

这两个代码片段有什么区别?

[英]What is difference between these two code snippets?

下面是两个代码,第一个正在编译,结果是无限循环,但另一个代码我得到一个编译器错误“不是语句”。 由于Math.random()在 0.0 和 1.0 之间返回double精度,所以我很奇怪为什么它们都没有给出相同的结果。

第一

    for(;;Math.random()){
        System.out.println("Infinity Loop");
    }

第二

    double i = 0.12654;
    for(;;i){
      System.out.println("Compile error");
    }

for 循环需要三个用分号分隔的语句(或者,如您所说明的,您可以没有语句)。

Java 支持三种类型的语句:

  1. 表达式语句 - 创建对象、调用方法或更改变量的语句(例如 Math.random())
  2. 声明语句 - 例如 double i = 0.12654
  3. 控制流语句 - 即 if、else、while 等

第二个化身中的 i 不是上述任何一个,这就是它编译失败的原因。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM