java - 为什么编译器没有出现错误?

标签 java

我刚刚发现我的编译器允许我编写下面的代码并且没有引发任何编译时错误。有谁可以赐教一下吗!

double y = arcToFindPointOn.getCenterXY().y - arcToFindPointOn.getRadius()*Math.sin(theta);;

上面代码行的奇怪之处在于最后的分号!

谢谢!

最佳答案

在其他语言中,例如 C# 和 C++,只有 ; 的指令意味着空指令,并且是允许的,不会生成任何错误,并且不会执行任何操作。

网上有很多这方面的文章,找到了这篇:Multiple semicolons are allowed by the C# Compiler for statement termination

This is a little weirdness inherited from C. In fact your example isn't a statement terminated by three semicolons, but three statements, two of which are empty. Occassionally it can be useful to use the empty statement in e.g. an if statement or a while loop, and then it would seem arbitrary to disallow it elsewhere. Besides, changing it now would be an unnecessary breaking change.

关于java - 为什么编译器没有出现错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7545375/

相关文章:

java - 将整个目录内容复制到另一个目录?

Java:创建 UI 类的新实例

java - 从Java中获取存储过程代码

java - 如何使用 jackson 解析具有可变数量的第二个分数的 RFC3339 时间戳

java - 如何使用 Firebase 从 Android 应用程序发送推送通知?

java - 如何正确地将 SQL 日期时间返回到我的 Java 应用程序中?

java - 如何在Java中通过id过滤重复的ArrayList - spring boot data jpa

Java程序输出奇怪的结果

java - 无法在从代理调用的 java 中获取 openNTF session - 版本 10.0.1

java - 如何使用构造函数并打印