【问题标题】:How to move to next case in switch condition如何在切换条件下移动到下一个案例
【发布时间】:2013-05-14 09:13:24
【问题描述】:

我需要一个代码,在我的 Android 应用程序中使用它,我想遍历所有 switch 条件的情况,(不是随机的!!!)。我可以随机移动它,如下所示。

public void switchingLogic(){
         Random rand = new random();
          int i = rand.nextInt(4)+1;
    switch (i) {
        case 1:
            setImages(R.drawable.ic_launcher, R.drawable.ic_launcher);
            selectedCorrectImage(img1, R.raw.correct_img, R.raw.thats_correct);
            selectedWrongImage(img2, R.raw.wrong_img, R.raw.no_its_wrong);
            break;
        case 2:
            setImages(R.drawable.ic_launcher, R.drawable.ic_launcher);
            selectedCorrectImage(img1, R.raw.correct_img, R.raw.thats_correct);
            selectedWrongImage(img2, R.raw.wrong_img, R.raw.no_its_wrong);
            break;
        case 3:
            setImages(R.drawable.ic_launcher, R.drawable.ic_launcher);
            selectedCorrectImage(img1, R.raw.correct_img, R.raw.thats_correct);
            selectedWrongImage(img2, R.raw.wrong_img, R.raw.no_its_wrong);
            break;
        case 4:
            setImages(R.drawable.ic_launcher, R.drawable.ic_launcher);
            selectedCorrectImage(img1, R.raw.correct_img, R.raw.thats_correct);
            selectedWrongImage(img2, R.raw.wrong_img, R.raw.no_its_wrong);
            break;
}

但现在我只想按从 1 到 4 的顺序...

如果条件(选择的图像)在第一种情况下是正确的,我将全屏显示图像并再次回调该方法。

我刚刚遇到了 CURSOR 。 我可以使用它(如果是,如何?)或者有什么办法可以解决这个问题。 重要提示:我想在 onCreate() 中使用这个“切换逻辑方法”

【问题讨论】:

  • 在 switch 案例中,你一次只能得到一个值..你必须在循环中执行..然后检查循环内的条件
  • 意思是 for(i=0;i
  • for(i=0;i
  • 如果要运行所有案例,为什么要使用开关?我真的不明白你在做什么,你应该解释更多你的想法......

标签: android random switch-statement


【解决方案1】:

如果你没有在 switch-case 中设置break 命令,switch 不会在执行一个 case 后终止并移动到下一个 case。所以这段代码:

int i = 2;
switch(i) {
   case 1:
      // do something
   case 2:
      // do something
   case 3:
      // do something

}

将执行案例 2 和案例 3。也许您可以实现一个 ifclause 来定义案例是否应该中断。

【讨论】:

    【解决方案2】:

    您可以尝试创建 2 种方法来执行此操作:

    1. 一种使用 for 循环遍历所有案例的方法
    2. 包含您的案例的方法

    然后调用

    LoopThroughAllCases();
    
    

    代码看起来像这样。

        void LoopThroughAllCases()
        {
        int minCaseValue = 0; // modify to suit your case
        int maxCaseValue = 4; // modify to suit your case
        for (int i = minCaseValue ; i  <=  maxCaseValue ; i++)
                    {
    
                        Cases(i);
                    }
        }
    
        void Cases(int i)
                {
                    switch (i)
                    {
                        case 0:
                            // do something
                            break;
                          case 1:
                            // do something
                            break;
                          case 2:
                            // do something
                            break;
                          case 3:
                            // do something
                            break;
                          case 4:
                            // do something
                            break;
                          default:
                           //handle unknown value
                           break;
    
                    }
                }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-06
      • 1970-01-01
      • 2021-09-25
      相关资源
      最近更新 更多