gpt4 book ai didi

java - 之间的任何细微差别;或 {} 表示空语句?

转载 作者:太空狗 更新时间:2023-10-29 22:48:55 32 4
gpt4 key购买 nike

据我所知,语句终止符 ; 如果单独使用,则表示空语句。此外,“空循环体”可以是一种有用的编程结构,并且是使用 null 语句制作的。

查看下面第 2 行的 while 语句,我决定用一对背靠背的 {} curl 替换终止符 ;大括号。代码编译并运行正常。这是否意味着 Java 编译器用基于 ; 的空语句替换空代码块(由“空”{} 大括号表示)?

如果 Java 做了一些稍微不同的事情,那么在这两种情况下生成的字节码是否相同? (很抱歉,我不能检查这个 ATM。我是 Java 的新手,我还没有显示和检查字节码的必要知识)。

int i=0,j=100;

// Either a terminating ; symbol or {} braces work to make an "empty loop body".
while (++i < --j) {}
System.out.println("The midpoint between 0 and 100 is " +i); // Midpoint is 50.

最佳答案

两者在语义上是相同的,编译器在两种情况下都会生成相同的代码。如果您试图有意包含一个空循环体,{} 会更清楚地表明这是故意的,而不仅仅是一个杂散的分号。您应该始终明确地注释此类情况,并且通常最好重新编写代码以避免完全避免忙等待循环。

关于java - 之间的任何细微差别;或 {} 表示空语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20192363/

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