Android 开关\案例未按预期工作

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;

我的日志行显示animalclass为4,但它不返回“案例4”,而是返回默认值。但它适用于案例2。这怎么可能?提前谢谢

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语句,结果将是意外的

对不起,我在擦脸上的蛋……谢谢你们,不客气。请把这个问题标记为回答:)请原谅,我正在擦脸上的鸡蛋………谢谢你们,不客气。只需将此问题标记为已回答:)