Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.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
Android 令牌“else”上的语法错误删除此令牌_Android_If Statement - Fatal编程技术网

Android 令牌“else”上的语法错误删除此令牌

Android 令牌“else”上的语法错误删除此令牌,android,if-statement,Android,If Statement,我这辈子都修不好。它在其他服务器上返回一个错误。我在所有其他有相同问题的线程上尝试了所有方法,但都不起作用 @Override public boolean onOptionsItemSelected(MenuItem item) { //this method is used for handling menu items' events // Handle item selection switch (item.getItemId()) { case R.i

我这辈子都修不好。它在其他服务器上返回一个错误。我在所有其他有相同问题的线程上尝试了所有方法,但都不起作用

@Override
public boolean onOptionsItemSelected(MenuItem item) { //this method is used for handling menu items' events
    // Handle item selection
    switch (item.getItemId()) {

        case R.id.goBack:
            if(myWebView.canGoBack()) {
                myWebView.goBack();
            }
            return true;

            else 
                return super.onOptionsItemSelected(item);{

                }

        }
    }

Eclipse之所以抱怨,是因为else语句不在if语句之后——中间有一个返回true,顺便说一句,它会阻止执行后面的任何代码。修正缩进和代码格式有助于发现并防止类似这样的简单错误

public boolean onOptionsItemSelected(MenuItem item) {
    // Handle item selection
    switch (item.getItemId()) {
    case R.id.goBack:
        if (myWebView.canGoBack()) {
            myWebView.goBack();
            return true;
        }
    }
    return super.onOptionsItemSelected(item);
}

错误是因为在java中,最有可能的是定义if……块的任何编程语言,如C、C、C++等。如果存在,否则块必须在IF块或Sif语句定义之后出现,如果IF和OR之间的任何其他语句是非法的,则都是正确的。但是,在else块之前有一个return语句,这是非法的和无用的,因为return语句之后的任何代码块都变得不可访问

您可以将代码更改为

public boolean onOptionsItemSelected(MenuItem item) {
    // Handle item selection
    switch (item.getItemId()) {
        case R.id.goBack:
            if (myWebView.canGoBack()) {
            myWebView.goBack();
            return true;
        }
        break;
    default:
      return super.onOptionsItemSelected(item);
    }
}

这就是你的代码在编辑时的实际外观吗?没有缩进?难怪你有问题,是的。这会导致它失败吗?不,Java编译器不在乎。但这使得您很难看到代码块实际上是如何排列的。结果是,大括号放错了位置,这导致了此错误。您的if条件已经完成,因为在if子句后面有一条语句读取return true;。根据您试图实现的目标,您可能希望将其放在一个块中。我已经稍微修复了缩进-正如前面的注释中所提到的,您的代码显然已损坏。