令牌上的语法错误"默认",无效的标签

时间:2015-03-04 21:42:18

标签: java android eclipse

任何人都可以帮我解决我在转换为if-else语句时遇到的错误吗?

这是默认情况下的代码:Eclipse显示错误消息"令牌上的语法错误"默认",无效标签"

    @Override
public void onClick(View v) {
int id = v.getId();
if (id == R.id.btn_font_style) {

    font.showDialog();
    } 
else if (id == R.id.btn_font_size) {
    break;
    fsize.show();
    default: //I got error here
    break;
}

}

这是我的旧代码

        @Override
public void onClick(View v) {
    switch (v.getId()) {
    case R.id.btn_font_style:
        font.showDialog();
        break;
    case R.id.btn_font_size:
        fsize.show();
    default:
        break;
    }

}

1 个答案:

答案 0 :(得分:1)

在Java中,default is a keyword,并将其保留为switch语句中的默认大小写。因此,它作为普通标签无效。

对于标签,您必须使用非保留字的标识符。此外,不允许在开关或循环之外的break;语句。

您还可以添加switch语句,因为看起来break;语句似乎属于switch语句。

现在,我看到原始switch语句,将default个案从switch语句转换为if语句意味着使用else来覆盖默认情况下if条件都不匹配。在break;声明中,if语句没有意义;他们可以被删除。

@Override
public void onClick(View v) {
    int id = v.getId();
    if (id == R.id.btn_font_style) {

        font.showDialog();
    } 
    else if (id == R.id.btn_font_size) {
        // No break
        fsize.show();
    } else {  // old default case
        // Something here
    }
}

因为default案例中没有任何内容,相应的else语句中不应出现if子句。

@Override
public void onClick(View v) {
    int id = v.getId();
    if (id == R.id.btn_font_style) {

        font.showDialog();
    } 
    else if (id == R.id.btn_font_size) {
        // No break
        fsize.show();
    }
}