为什么我的switch语句的最后一个案例被命中了?

时间:2012-07-04 22:05:23

标签: java android

我的Java应用程序中的switch语句的最后一种情况总是受到打击。我怎样才能正常工作?

public void onClick(View v) {       
    Random r = new Random();
    int x=r.nextInt(4-1) + 1;
    switch (x)
    {
    case 1:
        setContentView(R.layout.image1);
    case 2:
        setContentView(R.layout.image2);
    case 3:
        setContentView(R.layout.image3);
    case 4:
        setContentView(R.layout.image4);

3 个答案:

答案 0 :(得分:10)

在没有break语句的情况下,大多数语言的案例陈述都会“失败”。您只需要为每个案例添加一个。像这样:

case 1:
    setContentView(R.layout.image1);
    break;
case 2:
    setContentView(R.layout.image2);
    break;
case 3:
    setContentView(R.layout.image3);
    break;
case 4:
    setContentView(R.layout.image4);
    break;

答案 1 :(得分:5)

你正在审理你的案件陈述。您需要break

switch (x)
{
  case 1:
    setContentView(R.layout.image1);
    break;
  case 2:
    setContentView(R.layout.image2);
    break;
  case 3:
    setContentView(R.layout.image3);
    break;
  case 4:
    setContentView(R.layout.image4);
    break;
}

看看这个tutorial

答案 2 :(得分:1)

您必须break;每个切换语句。如果你没有破坏这个陈述,那么下一个案子就会被击中(直到最后一个有一个中断)。

    case 1:
        setContentView(R.layout.image1);
        break;
    case 2:
        setContentView(R.layout.image2);
        break;
    case 3:
        setContentView(R.layout.image3);
        break;
    case 4:
        setContentView(R.layout.image4);
        break;
    default:
        //Anything you want;
    break;

并且...使用默认情况是一个很好的编程习惯(如果没有命中的话会使用)