任何人都可以帮我解决我在转换为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;
}
}
答案 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();
}
}