我遇到了一个错误问题,我正在使用"else if"语句.

Win*_*row 3 java eclipse if-statement

在处理if/else if时,似乎这个错误在某些计算机上发生了很多,因为有时候我实际上完全没有问题(没有实现Thread t = new Thread(this);,哈哈...),以及有时Eclipse会发出错误消息:"令牌上的语法错误"否则",{预期."

这是片段:

public void keyTyped(KeyEvent e) {
    int keyCode = e.getKeyCode();
    char keyLetter = e.getKeyChar();
    if(Character.*isLetterOrDigit*(keyLetter));

}
else if(keyCode == KeyEvent.VK_ENTER){
    dis.setWaitingforInputfalse();
}
}
}
Run Code Online (Sandbox Code Playgroud)

如果我真的把大括号放在那个荒谬的地方,那么
Ex:

else{ if(keyCode etc.etc.etc){
}
Run Code Online (Sandbox Code Playgroud)

然后它抛出错误:

此行的多个标记
- keyCode无法解析为变量
- 令牌"else"上的语法错误,删除此标记

会抛出"private int keyCode"; 在顶部修复它,或者是否会在以后导致某些问题导致它成为函数而不是变量或其他东西?

我应该把它留下来

{ if(keyCode etc.){
}
Run Code Online (Sandbox Code Playgroud)

或者有没有办法让else if语句工作?因为任何形式的尝试添加其他只是抛出一个错误.

App*_*ell 5

您的代码中存在一些问题:

public void keyTyped(KeyEvent e) {
    int keyCode = e.getKeyCode();
    char keyLetter = e.getKeyChar();
    if(Character.*isLetterOrDigit*(keyLetter)); // The if statement ends here 
                                                // because of the ;

} // the function keyTyped ends here
else if(keyCode == KeyEvent.VK_ENTER){ // the else is not connected to the if
    dis.setWaitingforInputfalse();
}
}
}
Run Code Online (Sandbox Code Playgroud)

你需要一个{ 而不是;背后的if.