Gab*_*ban 0 java switch-statement
我正在使用计时器(10秒钟)System.currentTimemillis.我有一个方法,每秒刷新10次以下代码:
Start是活动的开始时间,它在onCreate方法中被"询问".我知道这很Integer.parseInt(Long.toString(y))有效,因为当我这样做时,我会System.out.println(Integer.parseInt(Long.toString(y)));正确回报时间.
所以,我的问题是我不知道为什么swich不能正常工作.
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;
}
Run Code Online (Sandbox Code Playgroud)
因为它不会完全给出这些数字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
}
...
Run Code Online (Sandbox Code Playgroud)
...