Java I';我遇到了一个错误,我';I’我要用我的;否则,如果;陈述
在处理if/else-if时,这个错误似乎在某些计算机上经常发生,因为有时我在实现它时完全没有问题(不实现线程t=new-Thread(this);,哈哈…),有时Eclipse会发出错误消息:“令牌“else”上的语法错误,{预期。” 以下是片段:Java I';我遇到了一个错误,我';I’我要用我的;否则,如果;陈述,java,eclipse,if-statement,Java,Eclipse,If Statement,在处理if/else-if时,这个错误似乎在某些计算机上经常发生,因为有时我在实现它时完全没有问题(不实现线程t=new-Thread(this);,哈哈…),有时Eclipse会发出错误消息:“令牌“else”上的语法错误,{预期。” 以下是片段: public void keyTyped(KeyEvent e) { int keyCode = e.getKeyCode(); char keyLetter = e.getKeyChar(); if(Character.*
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();
}
}
}
如果我真的像它希望我在那个可笑的地方那样放上了卷发支架,例如:
然后抛出错误: 该行有多个标记
-keyCode无法解析为变量
-令牌“else”上出现语法错误,请删除此令牌 将“private int keyCode;”放在最上面会解决它吗,或者这只是会在以后的过程中导致一些问题,使它成为一个函数而不是一个变量什么的 我是否应该把它作为
{ if(keyCode etc.){
}
或者有没有办法让else-if语句正常工作?因为任何形式的尝试添加else都会返回一个错误。因为您错误地将
;
放在if
语句之后,而不是{
,您无意中提前关闭了KeyType方法。因此,else
与任何if
语句断开连接(这在Java中是不允许的),并且keyCode
变量超出范围
在您的if
语句之后,将;
替换为{
。最后看起来您还有一个游离的}
。在下面的代码中,我还从if
条件中删除了无关的*
固定代码:
public void keyTyped(KeyEvent e) {
int keyCode = e.getKeyCode();
char keyLetter = e.getKeyChar();
if(Character.isLetterOrDigit(keyLetter)) {
// do something
}
else if(keyCode == KeyEvent.VK_ENTER){
dis.setWaitingforInputfalse();
}
}
提示:在大多数IDE和代码编辑器(包括Eclipse)中,如果您将(键入)光标定位在
(
,)
,[
,]
,{
,或}
,则编辑器将突出显示或在其配偶周围绘制一个矩形。您的代码中有一些问题:
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();
}
}
}
在if后面需要一个
{
而不是;
。hats因为您要在else之前关闭keyTyped方法,所以需要在'else'之前删除右括号,并为'if'部分添加语句-
public void keyTyped(KeyEvent e) {
int keyCode = e.getKeyCode();
char keyLetter = e.getKeyChar();
if(Character.*isLetterOrDigit*(keyLetter)){
//do something here
}
else if(keyCode == KeyEvent.VK_ENTER){
dis.setWaitingforInputfalse();
}
}
你似乎没有开始{。如果你刚刚有,那应该没问题,但不需要结束大括号。如果你有4个开始大括号{,你也应该有4个结束大括号}
因此,当您键入代码时,只需将{}立即打开和关闭大括号,然后退一步到这一块,继续在里面打字。这样你就永远不会丢失大括号。检查你的括号-你的
,否则如果bloxk不在keyTyped
方法范围内。你是否正在上计算机科学入门课,并为你的家庭作业寻求帮助?:DHint:如果你将光标放在{
或}之前或之后
,Eclipse会在它的配偶周围画一个矩形。但是,说真的,问题是直截了当的。当你应该使用左大括号的时候,你却在使用分号。你要么完全没有注意到这一点,要么你对如何使用大括号并不熟悉。这是一个简单的打字错误。虽然不是每个人都会承认,但我相信大多数人都会这么做这里的人犯了这样微妙的错误,一直盯着他们看,直到我们眼睛交叉。
public void keyTyped(KeyEvent e) {
int keyCode = e.getKeyCode();
char keyLetter = e.getKeyChar();
if(Character.*isLetterOrDigit*(keyLetter)){
//do something here
}
else if(keyCode == KeyEvent.VK_ENTER){
dis.setWaitingforInputfalse();
}
}