Android 开关\案例未按预期工作
我的日志行显示animalclass为4,但它不返回“案例4”,而是返回默认值。但它适用于案例2。这怎么可能?提前谢谢Android 开关\案例未按预期工作,android,switch-statement,Android,Switch Statement,我的日志行显示animalclass为4,但它不返回“案例4”,而是返回默认值。但它适用于案例2。这怎么可能?提前谢谢 public int gettile(int animalclass) { Log.e("gettile", "animalclass = " + animalclass); switch (animalclass) { case 1: // tile=R.drawable.picnictile; break;
public int gettile(int animalclass) {
Log.e("gettile", "animalclass = " + animalclass);
switch (animalclass) {
case 1: //
tile=R.drawable.picnictile;
break;
case 2: //
tile=R.drawable.picnictile;
break;
case 3: //
tile=R.drawable.picnictile;
case 4: //
tile=R.drawable.picnictile;
case 5: //
tile=R.drawable.face;
default:
Log.e("gettile", "failed!!!!!!!!!! = " + animalclass);
tile=R.drawable.rainbowtile;
break;
}
Log.e("gettile", "returning = " + tile);
return tile;
}
您需要使用
break
停止其他case执行,因为在不中断的情况下,它将执行正确的case block语句和“default”代码块您需要使用中断
停止其他案例执行,因为在不中断的情况下,它将执行正确的案例块语句和“默认”代码块尝试在所有案例之后添加中断状态集
case 3: //
tile=R.drawable.picnictile;
break;
case 4: //
tile=R.drawable.picnictile;
break;
case 5: //
tile=R.drawable.face;
break;
如果您在机箱应该执行的“操作”之后未将其断开,则开关无法正常工作。尝试在所有机箱之后添加断开状态网
case 3: //
tile=R.drawable.picnictile;
break;
case 4: //
tile=R.drawable.picnictile;
break;
case 5: //
tile=R.drawable.face;
break;
如果您在案例应该执行的“操作”之后未将其断开,则开关无法正常工作。您忘记在
默认
关键字之前添加断开
关键字。
试试这个:
public int gettile(int animalclass) {
Log.e("gettile", "animalclass = " + animalclass);
switch (animalclass) {
case 1: //
tile=R.drawable.picnictile;
break;
case 2: //
tile=R.drawable.picnictile;
break;
case 3: //
tile=R.drawable.picnictile;
break;
case 4: //
tile=R.drawable.picnictile;
break;
case 5: //
tile=R.drawable.face;
break;
default:
Log.e("gettile", "failed!!!!!!!!!! = " + animalclass);
tile=R.drawable.rainbowtile;
break;
}
Log.e("gettile", "returning = " + tile);
return tile;
}
您忘记在
default
关键字之前添加break
关键字。
试试这个:
public int gettile(int animalclass) {
Log.e("gettile", "animalclass = " + animalclass);
switch (animalclass) {
case 1: //
tile=R.drawable.picnictile;
break;
case 2: //
tile=R.drawable.picnictile;
break;
case 3: //
tile=R.drawable.picnictile;
break;
case 4: //
tile=R.drawable.picnictile;
break;
case 5: //
tile=R.drawable.face;
break;
default:
Log.e("gettile", "failed!!!!!!!!!! = " + animalclass);
tile=R.drawable.rainbowtile;
break;
}
Log.e("gettile", "returning = " + tile);
return tile;
}
添加中断关键字,否则开关也将执行default语句,结果将是意外的 Addbreak关键字,否则开关也将执行default语句,结果将是意外的 对不起,我在擦脸上的蛋……谢谢你们,不客气。请把这个问题标记为回答:)请原谅,我正在擦脸上的鸡蛋………谢谢你们,不客气。只需将此问题标记为已回答:)