检查号码是否在号码列表中

时间:2014-03-07 21:47:14

标签: java arrays list arraylist

我是编程的新手,我正在试图弄清楚如何创建一个像这样的数字列表(5,10,15,20,25,一直到500)然后能够检查玩家是否得分等于这些数字中的任何一个。

到目前为止我的代码是这样的..它有效,但只有在分数为5时才会有效。

private void drawPower() {

    if (myWorld.getScore() == 5) {
        batcher.draw(Power, pipe3.getX(), pipe3.getY() + pipe3.getHeight()
                + 30, 20, -14);

    }

}

我需要知道需要做什么,而不是

if (myWorld.getScore() == 5) {

它将是

if (myWorld.getScore() == "any number in the list") {

3 个答案:

答案 0 :(得分:8)

我不会使用从5到100的5的倍数数组。

我只是检查它是否为5的倍数,如果它在5500之间。

int score = myWorld.getScore();
if (score >= 5 && score <= 500 && score % 5 == 0) {

答案 1 :(得分:3)

@ rgettman的答案绝对是最好的方法。然而,更一般地回答这个问题(因为它可能会再次出现):

if(Arrays.asList(5, 10, 15, 20).contains(myWorld.getScore()))

但是,如果数字对他们有任何形式,像rgettman这样的解决方案肯定会更好。如果数字或多或少是任意的话。

答案 2 :(得分:0)

由于数组包含从5到500(步长为5)的所有数字,因此:

public hasScore(int score) {  
   int position = (score/5) - 1;  
   return arrray[position] == score;  
}  

即。得分应该在位置(i / 5) - 1(因为索引0中为5,索引1中为10),依此类推。
因此,检查分数是否确实在预期位置