繁体   English   中英

为什么我的 switch 语句的最后一个情况会被击中?

[英]Why is the last case of my switch statement getting hit?

我的 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);

在大多数语言中,如果没有 break 语句,case 语句将“失败”。 您只需为每个案例添加一个。 像这样:

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;

你正在通过你的案例陈述。 你需要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;
}

看看这个教程

你必须break; 您拥有的每个 switch 语句。 如果你不打破语句,那么下一个案例将被击中(所以一个直到最后一个有中断)。

    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;

而且...使用默认情况是一种很好的编程习惯(如果没有遇到任何情况,将使用)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM