gpt4 book ai didi

java - Java 中带有一对强制大括号的单行循环

转载 作者:IT老高 更新时间:2023-10-28 20:34:10 25 4
gpt4 key购买 nike

以下代码段中的代码运行良好。它计算使用 int 类型的静态字段(即 cnt)创建的对象的数量。

public class Main
{
private static int cnt;

public Main()
{
++cnt;
}

public static void main(String[] args)
{
for (int a=0;a<10;a++)
{
Main main=new Main();
}

/*for (int a=0;a<10;a++)
Main main=new Main();*/

System.out.println("Number of objects created : "+cnt+"\n\n");
}
}

它显示以下输出。

Number of objects created : 10

唯一的问题是,当我从上面的 for 循环中删除这对花括号时(请参阅注释的 for 循环),会发出编译时错误表示

not a statement.

为什么在这种特殊情况下,即使循环只包含单个语句,一对大括号也是强制

最佳答案

当你声明一个变量时(本例中为main):

Main main = new Main();

它不算作陈述,即使它有副作用。为了它是一个正确的陈述,你应该这样做

new Main();

那是为什么

... {
Main main = new Main();
}

允许吗? { ... } 是一段代码,确实算作一个语句。在这种情况下,main 变量可以在声明之后使用,但在右大括号之前。一些编译器忽略了它确实没有被使用的事实,其他编译器对此发出警告。

关于java - Java 中带有一对强制大括号的单行循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11602533/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com