以下方法无法在 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/