java - 语法或语义问题?

标签 java syntax semantics

以下方法无法在 Java 中执行,因为变量 i 在使用时可能仍未初始化。这是句法问题还是语义问题?

public int odd( boolean b ){
    int i;
    if( b ){ i = 3;}
    return i;
}

我原以为这是语义问题,但根据我的导师的说法,这是一个语法错误。这是正确的吗?为什么?

最佳答案

这是 Java 编译器检测到的错误,但不是语法错误;根据 Java 语法,它是完全有效的。它在分析的后期阶段被检测到,使其成为语义错误。

也就是说,听起来您的讲师想要将任何编译器错误定义为语法错误,并且可能希望“语义错误”表示运行时出现的错误。因为老师给家庭作业打分,你不得不接受他的定义(即使它们是完全错误的,就像在这种情况下 ;))。

关于java - 语法或语义问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8803718/

相关文章:

semantics - 如何使用本体

Java:我可以更改 HTTP header 并读取 header 服务器端吗?

Java CipherOutputStream 不返回所有字节

c++ - 如何使#include-file 的内容成为 cpp 文件中的编译时常量?

ios - 无法使用点符号快速访问函数成员

python - 您是否应该在Python的非库代码中使用下划线_作为“访问修饰符指示符”?

java - 如何验证 GCM 推送通知的服务器端实现的注册?

java - 删除在 arraylist 中不起作用?

数组的 Java 泛型语法

测试 "0"、 "-0"、 "0.0"、 "00"时的 PHP 和 Perl 行为