Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java I';我遇到了一个错误,我';I’我要用我的;否则,如果;陈述_Java_Eclipse_If Statement - Fatal编程技术网

Java I';我遇到了一个错误,我';I’我要用我的;否则,如果;陈述

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.*

在处理if/else-if时,这个错误似乎在某些计算机上经常发生,因为有时我在实现它时完全没有问题(不实现线程t=new-Thread(this);,哈哈…),有时Eclipse会发出错误消息:“令牌“else”上的语法错误,{预期。”

以下是片段:

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();
 }
}