java - 为什么我的开关不起作用?

标签 java switch-statement

我正在使用System.currentTimemillis制作一个计时器(10秒)。我在每秒刷新 10 次的方法中添加了以下代码:

Start 是 Activity 的开始时间,是在 onCreate 方法中“询问”的。 我知道 Integer.parseInt(Long.toString(y)) 有效,因为当我这样做时 System.out.println(Integer.parseInt(Long.toString(y))); code> 它会正确返回我的时间。

所以,我的问题是我不知道为什么开关不能正常工作。

long y=System.currentTimeMillis()-start;

switch (Integer.parseInt(Long.toString(y))) {           
    case 1000:
        time.setText("3");
        time.setAnimation(anim);
        break;

    case 2000:
        time.setText("2");
        time.setAnimation(anim);
        break;

    case 3000:
        time.setText("1");
        time.setAnimation(anim);
        break;

    case 4000:
        time.setText("GOOO!");
        time.setAnimation(anim);
        count.setVisibility(View.VISIBLE);
        cuenta = 0;
        count.setText("0");
        break;

    case 5000:
        time.setText("1");
        time.setAnimation(anim);
        break;

    case 6000:
        time.setText("2");
        time.setAnimation(anim);
        break;

    case 7000:
        time.setText("3");
        time.setAnimation(anim);
        break;

    case 8000:
        time.setText("4");
        time.setAnimation(anim);
        break;

    case 9000:
        time.setText("5");
        time.setAnimation(anim);
        break;

    case 10000:
        time.setText("Time!");
        time.setAnimation(anim);
        count.setVisibility(View.INVISIBLE);
        break;
}

最佳答案

因为它不会准确地给出这些数字 1000,2000,3000...

如果数字多或少,则案例将失败

编辑:

试试这个

public static boolean isBetween(int x, int lower, int upper) {
  return lower <= x && x <= upper;
}

if (isBetween(num, 0, 1000)) {

  // do something

} else if (isBetween(num, 1001, 2000)) {

// do domething

}
...

...

关于java - 为什么我的开关不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15977069/

相关文章:

java - Spring Boot 2.5.0 对于 Jackson Kotlin 类支持,请将 "com.fasterxml.jackson.module: jackson-module-kotlin"添加到类路径

c - 程序序列的奇怪行为

Swift:Switch 语句失败行为

java - cron 中看不到的环境变量

java - 我应该使用什么设计模式来构建一个简单的报告系统

java - 比较具有多个属性的 bean,每个属性取决于两个 bean

swift - 如何使用带有嵌套枚举的 switch 语句?

java - 在 Java 17 switch-case 中使用 final 变量的好处

java - switch case 中需要的常量表达式

java - HQL 查询未删除托管对象